onDraw什么时候被调用?



onDraw什么时候被调用?

1、onDraw是在View初化完成之后开始调用
2、postInvalidate()是重绘的,也就是调用postInvalidate()后系统会重新调用onDraw方法画一次
onDraw实例:
Java code
?

 

@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);

}