当前位置:   article > 正文

view转bitmap&&保存图片到本地_uinapp view 转换bitmap

uinapp view 转换bitmap
1.view转bitmap:   思路是这样的,先获取目标view的宽高并以此来创建一个bitmap,利用这个bitmap构造一个canvas,调用view的draw方法传入这个canvas参数就实现了把view画在了bitmap上。
  1. int width=view.getWidth();
  2. int height=view.getHeight();
  3. //获取view的宽高生成一个bitmap
  4. Bitmap bitmap= Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888);
  5. Canvas canvas=new Canvas(bitmap);
  6. canvas.drawColor(Color.WHITE);//默认是透明色
  7. //view.layout(0,0,width,height);
  8. view.draw(canvas);

需要注意canvas先把背景色画成了白色,不画的话默认是透明的,也就是没有背景。


2.保存图片到本地:

首先当然要获得SD卡的读写权限

把图片存在本地有两种方法,一种是直接插入系统图库,一种是插入指定路径。如果图片仅仅放在一个文件夹里而没有插入图库的话,在图库里浏览图片时就不会看到这张,在qq等软件看最近图片的时候也不会看到。

先说把图片写入指定路径:

  1. //把图片写入本地
  2. File file=new File(Environment.getExternalStorageDirectory(),"image");
  3. if (!file.exists()){
  4. file.mkdir();//创建这个文件夹
  5. }
  6. File file2 =new File(file,"myimage.jpg");
  7. try {
  8. FileOutputStream stream=new FileOutputStream(file2);
  9. bitmap.compress(Bitmap.CompressFormat.JPEG,100,stream);
  10. stream.flush();
  11. stream.close();
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. }
这里我把一张名为myimage的图片放在了SD根目录下的image文件夹里(有判断,无此文件夹则创建),很好理解,就是用了bitmap的compress方法,压缩质量是百分之百。两次新建file实际上是路径字符串的拼接。


把图片插入到图库里有两种方法,可以传入一个bitmap插入bitmap,也可以传入一张图片的路径来插入。这里我们已经把图片放到手机上,有了一个路径,所以可以直接传这个路径、;

  1. try {
  2. MediaStore.Images.Media.insertImage(getContentResolver(),file2.getAbsolutePath()
  3. ,"myimage.jpg",null);
  4. } catch (FileNotFoundException e) {
  5. e.printStackTrace();
  6. }
  7. sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+file2.getAbsolutePath())));
插入方法的后面两个参数对应数据库里的两个字段。插入后要提醒手机进行对这个文件的扫描更新,否则插入无效

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/262180
推荐阅读
相关标签
  

闽ICP备14008679号