标签:
1、所需的控件:
(1)Paint:画笔,可设置画图线条颜色,粗细,锯齿有无等,用与画图的工具;
(2)Canvas:画布(需传入Bitmap对象),使用该对象可以达到自己想画的图形效果, 最后实现在位图上
如:直线,矩形,椭圆等;
(3)Bitmap:位图,实现画布图形的控件;
(4)ImageView:装载位图的控件;
(5)触屏监听器:实现OnTouchListener完成触屏画图的响应事件及操作;
2、构建过程:
(1)先定义类实现触屏监听接口(OnTouchListener)
1)要实现根据触屏操作响应画图,在监听内须提前构建画布、画笔等一系列 画图相关控件。但由于(Bitmap)位图大小需适应事件源对象(即ImageView),
应在第一次的public boolean onTouch(View v, MotionEvent event)方法中,创建 适应事件源v的(Bitmap)位图。创建位图可以调用该类的静态创建方法:
bitmap=Bitmap.creatBitmap(宽,高, 位图位数);
再创建画布:new Canvas(bitmap)
与画笔(也可在此时设置相应的属性);
2)event对象中包含着触屏的坐标与触屏的事件。根据触屏的事件执行相应 的操作:
如:MotionEvent.ACTION_DOWN(按下):获取第一次坐标
MotionEvent.ACTION_UP(松开):获取第二次坐标,并画出想要的图形
(canvas.drawLine(x1,y1,x2,y2,paint)直线、矩形、圆等等)
MotionEvent.ACTION_MOVE(移动):获取第二次坐标,以两次坐标连线,
再用第二次的坐标覆盖第一次的坐标,这样就可以画出你想画的图形;
3)因为画布canvas传入的的是位图,canvas的draw操作只是在位图中画图。 要在界面中的ImageView显示出来,就须在每次的canvas的draw操作(即位 图的更新)之后,iv.setImageBitmap(bitmap);(ImageView iv=(ImageView)v;), 相当于更新页面的显示吧;
(2)在activity.xml界面中添加一个ImageView,在activity.java中找到它,并给它设置 触屏监听器
标签:
原文地址:http://www.cnblogs.com/fjsjxy1111/p/5126757.html