android Canvas 画板 和 OnTouch 事件

public class MainActivity extends Activity {

	ImageView image;
	Button bt_save, bt_clear;
	int downX, downY, moveX, moveY;
	Canvas canvas;
	Bitmap bitmap;
	Paint paint;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
	}

	public void initView() {
		image = (ImageView) findViewById(R.id.image);
		bt_clear = (Button) findViewById(R.id.bt_clear);
		bt_save = (Button) findViewById(R.id.bt_save);
		image.setOnTouchListener(new MyOnTouchListener());

	}

	class MyOnTouchListener implements OnTouchListener {

		@Override
		public boolean onTouch(View v, MotionEvent event) {

			switch (event.getAction()) {
			case MotionEvent.ACTION_DOWN:   

				System.out.println("按下了");
				downX = (int) event.getX();
				downY = (int) event.getY();
				if (bitmap == null) {
					bitmap = Bitmap.createBitmap(image.getWidth(),
							image.getHeight(), Config.ARGB_4444);  创建Bitmap
					canvas = new Canvas(bitmap);  给画板贴上一副画纸  
					paint = new Paint();     //创建画笔
					paint.setStrokeWidth(5);    //设置画笔粗细
					paint.setColor(Color.GREEN);   //画笔颜色
					canvas.drawColor(Color.BLUE);   //画纸颜色
					image.setImageBitmap(bitmap);  
				}
				break;
			case MotionEvent.ACTION_MOVE:
				moveX = (int) event.getX();
				moveY = (int) event.getY();

				canvas.drawLine(downX, downY, moveX, moveY, paint);  //画线
				downX = moveX;
				downY = moveY;
				image.setImageBitmap(bitmap);
				System.out.println("移动");
				break;
			case MotionEvent.ACTION_UP:
				System.out.println("松开了");
				// image.setImageBitmap(bitmap);
				break;
			default:
				break;
			}
			return true;
		}

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值