Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 中級開發 >> Andorid繪圖Canvas 方法介紹

Andorid繪圖Canvas 方法介紹

編輯:中級開發

做Java的都知道,繪圖肯定首先需要一個Canvas,然後在用Graphics在上面繪制自己想要圖案。不錯,Android上面也類似,你可以從一個Bitmap得到它的Canvas(new Canvas(BitMap bitMap)),進行繪制,也可以自定義一個VIEw,用它的Canvas。不同的是,android裡沒有Graphics,而用 Paint代之,當然用法也稍有不同。以下是自定義VIEw的一段代碼:  
Java代碼

  1.     @Override  
     
  2. public void onDraw(Canvas canvas) {   
     
  3.     // 首先定義一個paint   
     
  4.     Paint paint = new Paint();   
     
  5.         
     
  6.     // 繪制矩形區域-實心矩形   
     
  7.     // 設置顏色   
     
  8.     paint.setColor(Color.WHITE);   
     
  9.     // 設置樣式-填充   
     
  10.     paint.setStyle(Style.FILL);   
     
  11.     // 繪制一個矩形   
     
  12.     canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);   
     
  13.         
     
  14.     // 繪空心矩形   
     
  15.     // 設置顏色   
     
  16.     paint.setColor(Color.RED);   
     
  17.     // 設置樣式-空心矩形   
     
  18.     paint.setStyle(Style.STROKE);   
     
  19.     // 繪制一個矩形   
     
  20.     canvas.drawRect(new Rect(10, 10, 50, 20), paint);   
     
  21.         
     
  22.     // 繪文字   
     
  23.     // 設置顏色   
     
  24.     paint.setColor(Color.GREEN);   
     
  25.     // 繪文字   
     
  26.     canvas.drawText(str, 30, 30, paint);   
     
  27.         
     
  28.     // 繪圖   
     
  29.     // 從資源文件中生成位圖   
     
  30.     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);   
     
  31.     // 繪圖   
     
  32.     canvas.drawBitmap(bitmap, 10, 10, paint);   
     
  33. }  
     

  34.  
  35.       @Override
     
  36.     public void onDraw(Canvas canvas) {
     
  37.         // 首先定義一個paint
     
  38.         Paint paint = new Paint();
     
  39.          
     
  40.         // 繪制矩形區域-實心矩形
     
  41.         // 設置顏色
     
  42.         paint.setColor(Color.WHITE);
     
  43.         // 設置樣式-填充
     
  44.         paint.setStyle(Style.FILL);
     
  45.         // 繪制一個矩形
     
  46.         canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);
     
  47.          
     
  48.         // 繪空心矩形
     
  49.         // 設置顏色
     
  50.         paint.setColor(Color.RED);
     
  51.         // 設置樣式-空心矩形
     
  52.         paint.setStyle(Style.STROKE);
     
  53.         // 繪制一個矩形
     
  54.         canvas.drawRect(new Rect(10, 10, 50, 20), paint);
     
  55.          
     
  56.         // 繪文字
     
  57.         // 設置顏色
     
  58.         paint.setColor(Color.GREEN);
     
  59.         // 繪文字
     
  60.         canvas.drawText(str, 30, 30, paint);
     
  61.          
     
  62.         // 繪圖
     
  63.         // 從資源文件中生成位圖
     
  64.         Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
     
  65.         // 繪圖
     
  66.         canvas.drawBitmap(bitmap, 10, 10, paint);
     
  67.     }

以上需要注意的有三點:  
1、android中的Rect和Java中的可能稍有區別,前兩個參數是左上角的坐標,後兩個參數是右下角的坐標(不是寬度和高度);  
2、Style.STROKE和Style.FILL外邊的像素數是有區別的,這點和Java裡一樣;  
3、繪文字時,設置的坐標點為(30,30),但繪出來後你會發現,文字的左上角坐標要比你設置的偏上,不知道是android設置的bug,還是我們有理解到坐標點的意義。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved