Blackberry - custom BubbleChartField

前端 未结 1 1609
忘了有多久
忘了有多久 2021-01-15 20:14

I need to develop a blackberry application which should show a bubble chart.
How to implement custom control for this purpose?
thanks.

相关标签:
1条回答
  • 2021-01-15 20:35

    UPDATE here is the KB How To - Create graph fields

    You should be more specific and complete in you question...
    Well, just to show you direction:

    public class BubbleChart extends Field {
    
        int mWidth = Display.getWidth();
        int mHeight = Display.getHeight();
    
        int[] mXpos = null;
        int[] mYpos = null;
        int[] mRad = null;
        int[] mColor = null;
    
        public BubbleChart(int[] xPos, int[] yPos, int[] rad, int[] colors) {
            this(xPos, yPos, rad);
            mColor = colors;
        }
    
        public BubbleChart(int[] xPos, int[] yPos, int[] rad) {
            mXpos = xPos;
            mYpos = yPos;
            mRad = rad;
        }
    
        public int getPreferredWidth() {
            return mWidth;
        }
    
        public int getPreferredHeight() {
            return mHeight;
        }
    
        protected void layout(int width, int height) {
            setExtent(getPreferredWidth(), getPreferredHeight());
        }
    
       protected void paint( Graphics graphics )
       {
           for( int i = 0, cnt = mXpos.length; i < cnt; i++ )
           {
               if( null != mColor )
                   graphics.setColor( mColor[ i ] );
               else
                   graphics.setColor( Color.WHITE );
               drawFilledCircle( graphics, mXpos[ i ], mYpos[ i ], mRad[ i ] );
               graphics.setColor( Color.BLACK );
               drawCircle( graphics, mXpos[ i ], mYpos[ i ], mRad[ i ] );
           }
       }
    
       private void drawFilledCircle( Graphics g, int x, int y, int r )
       {
           g.fillEllipse( x, y, x + r, y, x, y + r, 0, 360 );
       }
    
       private void drawCircle( Graphics g, int x, int y, int r )
       {
           g.drawEllipse( x, y, x + r, y, x, y + r, 0, 360 );
       }
    }
    

    and somewhere in app:

    class Scr extends MainScreen {
        public Scr() {
            int[] x = { 20, 100, 150 };
            int[] y = { 20, 100, 150 };
            int[] r = { 10, 50, 80 };
            int[] c = { Color.RED, Color.GREEN, Color.YELLOW };
            add(new BubbleChart(x, y, r, c));
        }
    }
    
    0 讨论(0)
提交回复
热议问题