Android中2D繪圖工具類(Canvas,Paint和Color)簡介
通常的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執行的操作對后續的繪制有影響。save和restore要配對使用(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>