Android简单画板的实现

与我们学java基础时接触到的画板相比,我觉得Android画板相对来说是要更复杂些的。创建一个Android画板,我们需要的基本接口有:
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;
		}

猜你喜欢

转载自1075345532.iteye.com/blog/1920711
今日推荐