Android中2D繪圖工具類(Canvas,Paint和Color)簡介

fydxdk 9年前發布 | 19K 次閱讀 Android Android開發 移動開發

  通常的Android應用開發中都要圖片,找美工設計些圖片,放到項目中就可以了,不過除了使用現有的圖片外,我們也可以用2D繪圖,就是在View畫一些圖案或文字。其中通常要用到的類有Canvas(畫布),Paint(畫筆)及Color(用來設置畫筆顏色)類,當然還可能用到其它很多類,都是根據自己項目中的需要來定的。

   Canvas:畫布,用來直接在View上繪制諸如矩形,圓形,文字,位圖等圖形。官方api網址:http://developer.android.com/reference/android/graphics/Canvas.html。Canvas可以繪制的對象有:弧線(arcs)、填充顏色(argb和color)、 Bitmap、圓(circle和oval)、點(point)、線(line)、矩形(Rect)、圖片(Picture)、圓角矩形 (RoundRect)、文本(text)、頂點(Vertices)、路徑(path)。另外還常用的兩個方法是:

save:用來保存Canvas的狀態。save之后,可以調用Canvas的平移、放縮、旋轉、錯切、裁剪等操作。restore:用來恢復Canvas之前保存的狀態。防止save后對Canvas執行的操作對后續的繪制有影響。saverestore要配對使用(restore可以比save少,但不能多),如果restore調用次數比save多,會引發Error

Paint:畫筆,作用于畫布上,用來設置我們繪制圖案的一些參數,如線條寬度(粗細),顏色等。常用的設置有:

setetAntiAlias: 設置畫筆的鋸齒效果。 

setColor: 設置顏色 

setARGB:  設置的ARGB色彩值。 

setAlpha:  設置Alpha值 

setTextSize: 設置字體尺寸。 

setStyle:  設置畫筆風格,空心或者實心。 

setStrokeWidth: 設置空心的邊框寬度。 

setShader:設置陰影效果

setTextSkewX:設置文字傾斜度

Color:顏色類,主要是提供畫筆的顏色等。可以定義在res/values/colors.xml中,也可以直接用系統提供的顏色值,更可通知Color.parseColor()來設置顏色。常用的系統顏色值如:

Color.BLACK;
Color.WHITE;
Color.BLUE;
Color.RED;
Color.YELLOW......

下面就一小例子:

public class MyDrawView extends View {
public MyDrawView (Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(Color.BLUE);
canvas.drawText("畫圓:", 10, 20, p);
p.setColor(Color.YELLOW);
canvas.drawLine(60, 40, 100, 40, p);// 畫線
p.setStyle(Paint.Style.FILL);
canvas.drawText("畫點:", 10, 360, p);
canvas.drawPoint(60, 390, p);//畫一個點
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);//畫一貼圖
canvas.drawBitmap(bitmap, 250,360, p);
}
}</span></span>

 本文由用戶 fydxdk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!