失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android 画画板(OnTouchListener 应用)

Android 画画板(OnTouchListener 应用)

时间:2019-09-04 19:54:47

相关推荐

Android 画画板(OnTouchListener 应用)

【1】布局:

【2】代码实现:

流程:

A,因为原图无法被修改所以我们需要创建一个副本,把副本添加到Imageview上

B,给ImageView设置setOnTouchListener监听 按下,抬起,移动。

C,设置画笔颜色,字体

D,保存在内存卡里。

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// [1]找到iv 用来展示我们画的内容iv = (ImageView) findViewById(R.id.iv);// [2]先获取bg.png的原图srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg);copyBimap = Bitmap.createBitmap(srcBitmap.getWidth(),srcBitmap.getHeight(), srcBitmap.getConfig());// [3.1]创建画笔类paint = new Paint();// [3.2]创建一个画布类 相当于把白纸铺到了画布上canvas = new Canvas(copyBimap);// [3.3]开始作画 当32行代码执行完毕后 白纸上就有内容了canvas.drawBitmap(srcBitmap, new Matrix(), paint);// [3.4]画一条线 线由2个点确定一条线// canvas.drawLine(20, 30, 40, 70, paint);// [4]把质的内容展示到iv上iv.setImageBitmap(copyBimap);// [5]给iv设置触摸事件iv.setOnTouchListener(new OnTouchListener() {float startX = 0;float startY = 0;@Overridepublic boolean onTouch(View v, MotionEvent event) {// [6]具体判断一下触摸事件的类型int action = event.getAction();switch (action) {case MotionEvent.ACTION_DOWN: // 按下// [7]获取手指按下的坐标startX = event.getX();startY = event.getY();System.out.println("按下:" + startX + "~~~~" + startY);break;case MotionEvent.ACTION_MOVE: // 移动// [8]获取移动后的坐标float stopX = event.getX();float stopY = event.getY();// [9]不停的画线canvas.drawLine(startX, startY, stopX, stopY, paint);System.out.println("移动:" + stopX + "~~~~" + stopY);// [10]更新iviv.setImageBitmap(copyBimap);// [11]更新一下开始的坐标 startX startYstartX = stopX;startY = stopY;break;case MotionEvent.ACTION_UP: // 抬起break;}// 如果返回值是true 当前监听器对象会消费掉return true;}});}// 点击按钮让画笔变红色public void click1(View v) {paint.setColor(Color.RED);}// 点击按钮让画笔加粗public void click2(View v) {paint.setStrokeWidth(19);}//点击按钮保存 大作public void click3(View v) {try {File file = new File(Environment.getExternalStorageDirectory().getPath(),"dazuo.png");FileOutputStream fos = new FileOutputStream(file);//参1:保存图片的格式参数2:quality 质量press(CompressFormat.PNG, 100, fos);fos.close();Toast.makeText(getApplicationContext(), "sucess", 1).show();} catch (Exception e) {e.printStackTrace();}}}

如果觉得《Android 画画板(OnTouchListener 应用)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。