副本的创建以及画板DIY
来源:互联网 发布:js实现分页功能 编辑:程序博客网 时间:2024/06/05 15:36
1:创建副本的步骤
[1]创建一个BItmap对象,获取图片的来源
[2]使用Bitmap的createBitmap创建一个副本
2:绘画
使用canvas(画布)来画画,创建一个canvas对象,参数为要操作的资源,使用draw...()方法,paint为画笔,Mitrix为矩阵.
3:设置触摸事件
iv_src = (ImageView) findViewById(R.id.iv_src);iv_copy = (ImageView) findViewById(R.id.iv_copy);Bitmap srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tomcat);iv_src.setImageBitmap(srcBitmap);copyBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());paint = new Paint();canvas = new Canvas(copyBitmap);Matrix matrix = new Matrix();/*//旋转matrix.setRotate(20);*//*//平移matrix.setTranslate(30, 0);*//*//镜像matrix.setScale(-1, 1);matrix.postTranslate(copyBitmap.getWidth(), 0);*//*//倒影matrix.setScale(1, -1);matrix.postTranslate(0, copyBitmap.getHeight());*/canvas.drawBitmap(srcBitmap, matrix, paint);iv_copy.setImageBitmap(copyBitmap);iv_copy.setOnTouchListener(new OnTouchListener() {int startX = 0;int startY = 0;@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stub//获取该动作的名字int action = event.getAction();switch (action) {case MotionEvent.ACTION_DOWN://System.out.println("down");startX = (int) event.getX();startY = (int) event.getY();break;case MotionEvent.ACTION_MOVE://System.out.println("move");int stopX = (int) event.getX();int stopY = (int) event.getY();canvas.drawLine(startX, startY, stopX, stopY, paint);iv_copy.setImageBitmap(copyBitmap);startX = stopX;startY = stopY;break;case MotionEvent.ACTION_UP://System.out.println("up");break;}//要是turereturn true;}});
4:保存
try {File file = new File(Environment.getExternalStorageDirectory().getPath(), SystemClock.uptimeMillis() + ".png");FileOutputStream fos = new FileOutputStream(file);copyBitmap.compress(CompressFormat.PNG, 100, fos);//同步到相册中 相册在存储卡重新挂载的时候更新 这时可以发送一条广播,广播为存储卡重新挂载.Intent intent = new Intent();//当广播为存储卡挂载或应用安装卸载时要写两个方法setAction setDataintent.setAction(Intent.ACTION_MEDIA_MOUNTED);intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));sendBroadcast(intent);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}
使用Bitmap对象 的compress(格式,精度(100),输出流)方法保存,发送广播事件,更新相册.
阅读全文
0 0
- 副本的创建以及画板DIY
- Android创建原图的副本
- Android创建原图的副本
- Clone 创建一个对象的副本
- 在内存中创建原图的副本
- Android之图片副本的创建
- Android 创建一个原图的副本
- Android内存中创建原图的副本
- diy文件系统上创建文件的流程
- 画布Canvas的初识以及一个简单画板的构造
- ES分片以及副本
- 几何画板使这样创建滑行反射变换的
- mongodb 副本集 创建
- mongodb副本集创建
- 创建视图和副本
- 创建图片副本
- Bitmap创建图片副本
- 创建图片副本
- c语言变量的初始化和赋值的区别
- 第五章
- 一点一滴探究JVM之内存结构
- Dell Alienware Aurora R6 (1080ti)安装Ubuntu17.04记录
- 树莓派spi通信
- 副本的创建以及画板DIY
- HHUOJ_1327: 电子钟
- Android蓝牙开发(二) BLE4.0低功耗蓝牙
- 大数据早报:合肥公证机构启用人脸识别系统;阿里AI时尚助手进驻全国13家门店 (11.16)
- 阿里服务器(1)---如何连接上我的服务器
- 运维之监控与安全篇------1. Linux基本防护 、 用户切换与提权 、 SSH访问控制
- 自创数据集,用TensorFlow预测股票教程 !(附代码)
- Java中的运算符
- NYOJ 1057 寻找最大数(三)(贪心)