本文将带你了解Android应用开发之Android ScrollView截图和图片保存到相册的方式,希望本文对大家学Android有所帮助。

1.1首先来看你一种截取屏幕,这种代码有缺陷,只能截取一次

Java代码    getWindow().getDecorView().setDrawingCacheEnabled(true);  Bitmap screenBitmap = getWindow().getDecorView().getDrawingCache();  img_display.setImageBitmap(screenBitmap);  getWindow().getDecorView().setDrawingCacheEnabled(true);

Bitmap screenBitmap = getWindow().getDecorView().getDrawingCache();

img_display.setImageBitmap(screenBitmap);

1.2下面的是每次都可以截取到(只能截取到可见屏幕部分,不可见部分无法截取)

Java代码    View decorView = getWindow().getDecorView();  Bitmap screenBitmap = Bitmap.createBitmap(decorView.getWidth(), decorView.getHeight(), Config.ARGB_8888);  Canvas canvas = new Canvas(screenBitmap);  decorView.draw(canvas);  View   decorView = getWindow().getDecorView();

Bitmap screenBitmap = Bitmap.createBitmap(decorView.getWidth(), decorView.getHeight(),   Config.ARGB_8888);

Canvas canvas = new Canvas(screenBitmap);

decorView.draw(canvas);

1.3截取可见与不可见屏幕部分(除ListView和GridView,只能截取ScrollView和HorizontalScrollView),原因是ListView和GridView的适配机制是不断的remove和add

注意:这里截取的是View而不是屏幕

ScrollView和HorizontalScrollView必须只有一个子布局,也就是说,他的子布局的来作为容器,它来作为滚动控件

Java代码    View decorView = getWindow().getDecorView();  ScrollView sv = (ScrollView)findViewById(R.id.scrollbox);  LinearLayout panel= (LinearLayout)sv.findViewById(R.id.scrollbox_panel);  int sumHeight = 0;  for(int i=0;i

ScrollView sv = (ScrollView)findViewById(R.id.scrollbox);

LinearLayout panel=   (LinearLayout)sv.findViewById(R.id.scrollbox_panel);

int sumHeight = 0;

for(int i=0;i

{

sumHeight +=   panel.getChildAt(i).getHeight();

}

Bitmap bmp = Bitmap.createBitmap(panel.getWidth(),sumHeight,Config.ARGB_8888);

Canvas canvas = new Canvas(bmp);

decorView.draw(panel);

图片保存是使用ContentProvider提供的接口,下面是相册的Uri定位

Java代码    Images.Media.EXTERNAL_CONTENT_URI  Images.Media.EXTERNAL_CONTENT_URI

最简单的保存方式

Java代码    //返回值是 Uri 协议字符串   String uriString = MediaStore.Images.Media.insertImage(context.getContentResolver(), bmp, “截图-20141121”, “这是我的截图”);   //返回值是   Uri 协议字符串

String uriString =   MediaStore.Images.Media.insertImage(context.getContentResolver(), bmp,   “截图-20141121”, “这是我的截图”);

Java代码    /** //保存到某路径下         File dir = new File("/sdcard/t/");         if (!dir.exists()) {             dir.mkdirs();         }         final String photoUrl = "/sdcard/t/" + System.currentTimeMillis() + ".png";//换成自己的图片保存路径         final File file = new File(photoUrl);         try {             FileOutputStream out = new FileOutputStream(file);             bm.compress(Bitmap.CompressFormat.JPEG, 100, out);             out.flush();             out.close();         } catch (FileNotFoundException e) {             // TODO Auto-generated catch block             e.printStackTrace();         } catch (IOException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }  **/  /**   //保存到某路径下

File dir = new   File("/sdcard/t/");

if (!dir.exists()) {

dir.mkdirs();

}

final String photoUrl =   "/sdcard/t/" + System.currentTimeMillis() +   ".png";//换成自己的图片保存路径

final File file = new   File(photoUrl);

try {

FileOutputStream out =   new FileOutputStream(file);

bm.compress(Bitmap.CompressFormat.JPEG, 100, out);

out.flush();

out.close();

} catch   (FileNotFoundException e) {

// TODO Auto-generated   catch block

e.printStackTrace();

} catch (IOException e)   {

// TODO Auto-generated   catch block

e.printStackTrace();

}

**/

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

android图片保存形式,Android应用开发之Android ScrollView截图和图片保存到相册的方式...相关推荐

  1. android设置背景图片不填充整个_Android应用开发之android解决背景图片平铺拉伸问题...

    本文将带你了解Android应用开发之android解决背景图片平铺拉伸问题,希望本文对大家学Android有所帮助 最近开发时遇到一个问题: 使用一条图片(1200x128)平铺作为背景,测试机型是 ...

  2. android 图片横竖判断_Android应用开发之android 判断ImageView当前显示的是哪一张图片...

    本文将带你了解Android应用开发之android   判断ImageView当前显示的是哪一张图片,希望本文对大家学Android有所帮助. 判断ImageView当前显示的是哪一张图片 Java ...

  3. android webview权限申请_Android应用开发之android 6.0下webview的定位权限设置方法

    本文将带你了解Android应用开发android 6.0下webview的定位权限设置方法,希望本文对大家学Android有所帮助. 如下所示: WebView webView =   (WebVi ...

  4. Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]

    http://blog.csdn.net/shimiso/article/details/8156439 前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使 ...

  5. Android之基于xmpp openfire smack开发之Android客户端开发[3]

    http://blog.csdn.net/shimiso/article/details/11225873 在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们 ...

  6. 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...

    本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...

  7. android webview 太大,Android应用开发之Android WebView加载图片显示过大的处理教程(代码教程)...

    本文将带你了解Android应用开发Android  WebView加载图片显示过大的处理教程(代码教程),希望本文对大家学Android有所帮助. Webview加载图片时,经常会遇到图片显示不符合 ...

  8. 3G应用开发之Android 传智播客 基础知识总结

    3G应用开发之Android Android应用开发之3G  3G应用开发之Android 3G应用开发之Android 应用开发之 讲师: 讲师:黎活明 北京传智 播客教育 www.itcast.c ...

  9. android添加截图功能,Android应用开发之Android 5.0及以上编程实现屏幕截图功能的方法...

    本文将带你了解Android应用开发Android 5.0及以上编程实现屏幕截图功能的方法,希望本文对大家学Android有所帮助. 本文实例讲述了Android   5.0及以上编程实现屏幕截图功能 ...

最新文章

  1. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732EM电磁流量计变送器如何接线!
  2. 厉害了,Spring Cloud Alibaba 发布 GA 版本!
  3. Jmeter_前端RSA加密下的登陆模拟_引用js文件实现(转)
  4. linux内核杂记(8)-进程调度(3)
  5. asp.net mvc 权限过滤和单点登录(禁止重复登录)
  6. 使用swoole进行消息推送通知,配合vb.net进行客户端开发一样爽[开发篇]
  7. 模拟注册用户,按照以下要求实现相关功能:
  8. Vue + webpack 项目配置化、接口请求统一管理
  9. 统计整数n的二进制表示中1的个数
  10. Java-ConfigHelper工具类
  11. MySQL5.7收集表统计信息时对该表上增删改查的影响
  12. QT 5.3 VS2010 中文
  13. ios php 聊天_解析php做推送服务端实现ios消息推送
  14. C++学习笔记 之 循环
  15. autobuddy in mfc导致的错误
  16. cryptojs des php,前端CryptoJS AES/DES加解密与后端PHP AES/DES加解密
  17. 2021-08-30二叉树后向遍历 leetcode 栈
  18. Java从入门到精通第一版(Java基础)
  19. linux查看进程占用连接数,Linux命令排查线上问题常用的几个
  20. 哈尔滨五星酒店马桶刷洗杯子事件舆情监测报告

热门文章

  1. 优雅的使用Laravel之phpstorm配置
  2. 3.AngularJS-过滤器
  3. 闯过这 54 关,点亮你的 Git 技能树 (五) - 完结篇
  4. JavaScript 设计模式之构造函数模式
  5. jenkins学习笔记2-在centos中安装jenkins master测试环境
  6. 在两个有序的数组中找第N个数,二分查找 O(lgm+lgn)级
  7. PPC系统常见启动项(StartUp)解说
  8. x264_param_default
  9. 数字后端——可制造性设计
  10. EPSON 自带CCD图像处理包的典型应用框架