android view畫圖筆記-1 – Android移動開發技術文章_手機開發 Android移動開發教學課程

1、一個簡單的示例
 
Java代碼 
public class View1 extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(new SampleView(this)); 
    } 
     
    private static class SampleView extends View { 
        private Paint paint; 
        public SampleView(Context context) { 
            super(context); 
            //創建Paint 
            paint = new Paint(); 
            //設置抗鋸齒效果 
            paint.setAntiAlias(true); 
            //設置畫刷的顏色 
            paint.setColor(Color.BLUE); 
        } 
         
        @Override protected void onDraw(Canvas canvas) { 
//          canvas.drawColor(Color.WHITE); 
            paint.setStyle(Paint.Style.FILL); 
            canvas.drawRect(new RectF(10, 10, 100, 100), paint); 
            canvas.drawCircle(55, 145, 45, paint); 
             
            paint.setStyle(Paint.Style.STROKE); 
            canvas.drawRect(new RectF(110, 10, 200, 100), paint); 
            canvas.drawCircle(155, 145, 45, paint); 
             
            paint.setStyle(Paint.Style.FILL_AND_STROKE); 
            canvas.drawRect(new RectF(210, 10, 300, 100), paint); 
            canvas.drawCircle(255, 145, 45, paint); 
//          invalidate(); 
        } 
    } 

 
 
效果如下:


 
使用view畫圖,有兩個重要的組件需要介紹:
Paint 可以理解為畫刷或者畫筆,去主要用來設置繪圖使用的顏色、填充方式、透明度、字體以及字體樣式等。
Canvas 畫佈,在view上顯示的圖形都是由canvas來繪制的。
Canvas繪圖需要4個基本組件,Bitmap、Canvas、需要繪制的圖形如Path、Rect等、以及Paint用來設置顏色和樣式。在上面的圖形中隻用到瞭Canvas Rect Circle 和Paint
 
上面的代碼對比瞭Paint的三種樣式效果
Paint.Style.FILL   用顏色填充圖形
Paint.Style.FILL_AND_STROKE     即繪制邊框 同時也填充內部
Paint.Style.STROKE  個人理解為隻繪制邊框
 
paint.setAntiAlias(true);
這個是用來設置抗鋸齒效果的。
可以通過寫測試代碼來看看效果。下面是沒有設置抗鋸齒效果的,截圖不是很清晰,效果不是很明顯,最好是在手機上跑跑,那樣就能發現兩者的差異瞭。

發佈留言