Android學習心得(一)——繪圖
- @Override
- public void onDraw(Canvas canvas) {
- // 首先定義一個paint
- Paint 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);
- }
- @Override
- public void onDraw(Canvas canvas) {
- // 首先定義一個paint
- Paint 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);
- }
@Override
public void onDraw(Canvas canvas) {
// 首先定義一個paint
Paint 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,還是我們有理解到座標點的意義。