Android學習心得(一)——繪圖

來源:互聯網
上載者:User
Android學習心得(一)——繪圖

文章分類:移動開發

做java的都知道,繪圖肯定首先需要一個Canvas,然後在用Graphics在上面繪製自己想要圖案。不錯,Android上面也類似,你可以從一個Bitmap得到它的Canvas,進行繪製,也可以自訂一個View,用它的Canvas。不同的時,Android裡沒有Graphics,而用Paint代之,當然用法也稍有不同。以下是自訂View的一段代碼: Java代碼 {
dp.sh.Toolbar.CopyToClipboard(this);return false;
}" href="http://writeblog.csdn.net/#">
  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. }  
@Overridepublic void onDraw(Canvas canvas) {// 首先定義一個paintPaint paint = new Paint();// 繪製矩形地區-實心矩形// 設定顏色paint.setColor(Color.WHITE);// 設定樣式-填充paint.setStyle(Style.FILL);// 繪製一個矩形canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);// 繪空心矩形// 設定顏色paint.setColor(Color.RED);// 設定樣式-空心矩形paint.setStyle(Style.STROKE);// 繪製一個矩形canvas.drawRect(new Rect(10, 10, 50, 20), paint);// 繪文字// 設定顏色paint.setColor(Color.GREEN);// 繪文字canvas.drawText(str, 30, 30, paint);// 繪圖// 從資源檔中產生位元影像Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);// 繪圖canvas.drawBitmap(bitmap, 10, 10, paint);}

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.