Android Api Demos登頂之路(八十三)Graphics-->Point

/*
 * 這個demon演示了點的繪製
 */
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new SampleView(this));
    }

    private class SampleView extends View{
        private Paint mPaint=new Paint();
        //定義點的座標
        private float[] pts;

        //定義圖形的寬度
        private static final float SIZE=300;
        //定義間隔的數量
        private static final int SEG=32;

        //繪製點
        private void buildPoints(){
            //點的數量
            int ptCounts=(SEG+1)*2;
            pts=new float[ptCounts*2];

            float value=0;
            //計算兩點之間的間距
            float delta=SIZE/SEG;
            for(int i=0;i<=SEG;i++){
                //設置兩個點的座標並將其存入到浮點數組當中,第一個點的座標爲橫向最後一個點,
                //第二個點爲縱向第一個點
                pts[i*4]=SIZE-value;
                pts[i*4+1]=0;
                pts[i*4+2]=0;
                pts[i*4+3]=value;
                value+=delta;
            }
        }

        public SampleView(Context context) {
            super(context);
            buildPoints();
        }
        //通過畫直線構建一個曲線
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            canvas.translate(10, 10);
            canvas.drawColor(Color.WHITE);

            mPaint.setColor(Color.RED);
            //參數爲0表示線的寬度爲1象素
            mPaint.setStrokeWidth(0);
            //畫線,第一個點與第二個點連接,第三個點與第四個點連接.....
            canvas.drawLines(pts, mPaint);

            mPaint.setColor(Color.BLUE);
            mPaint.setStrokeWidth(3);
            //畫點
            canvas.drawPoints(pts, mPaint);
        }

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章