Bitmap (位图):相当于存储空间,承载了所有实际的像素。
Canvas (画布):在位图上画图
Paint (画笔):可用于设置颜色、粗细、透明度等。
Drawable :代表某种可绘制的资源
由于界面是以Activity显示的,那么如果我们要看到Bitmap中的图片,就要用到组件ImageView,把Activity和Bitmap联系起来,由此我们就建立了一个画板,具体代码如下:
Canvas canvas;//画布 Bitmap bitmap;//位图 Paint paint;//画笔 ImageView image; float x1,x2,y1,y2; // private String shape; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //通过id获得ImageView对象 image = (ImageView) findViewById(R.id.image); //创建位图 bitmap = Bitmap.createBitmap(320, 480, Config.RGB_565); //创建画布 canvas = new Canvas(bitmap); //创建画笔 paint = new Paint(); paint.setColor(Color.RED); //把Bitmap和Activity联系起来 image.setImageBitmap(bitmap); //添加监听器 image.setOnTouchListener(onTouchListener); }
在android中,画图时鼠标的事件机制(按下、松开等)是由int型变量Action决定的,所以用的时候只需判断变量的值就行,代码如下:
public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub int ACTION = event.getAction(); switch(ACTION){ case MotionEvent.ACTION_DOWN: x1 = event.getX(); y1 = event.getY(); break; case MotionEvent.ACTION_UP: x2 = event.getX(); y2 = event.getY(); canvas.drawLine(x1, y1, x2, y2, paint); image.invalidate(); break; } return true; }