android图片保存形式,Android应用开发之Android ScrollView截图和图片保存到相册的方式...
本文将带你了解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截图和图片保存到相册的方式...相关推荐
- android设置背景图片不填充整个_Android应用开发之android解决背景图片平铺拉伸问题...
本文将带你了解Android应用开发之android解决背景图片平铺拉伸问题,希望本文对大家学Android有所帮助 最近开发时遇到一个问题: 使用一条图片(1200x128)平铺作为背景,测试机型是 ...
- android 图片横竖判断_Android应用开发之android 判断ImageView当前显示的是哪一张图片...
本文将带你了解Android应用开发之android 判断ImageView当前显示的是哪一张图片,希望本文对大家学Android有所帮助. 判断ImageView当前显示的是哪一张图片 Java ...
- android webview权限申请_Android应用开发之android 6.0下webview的定位权限设置方法
本文将带你了解Android应用开发android 6.0下webview的定位权限设置方法,希望本文对大家学Android有所帮助. 如下所示: WebView webView = (WebVi ...
- Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]
http://blog.csdn.net/shimiso/article/details/8156439 前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使 ...
- Android之基于xmpp openfire smack开发之Android客户端开发[3]
http://blog.csdn.net/shimiso/article/details/11225873 在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们 ...
- 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...
本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...
- android webview 太大,Android应用开发之Android WebView加载图片显示过大的处理教程(代码教程)...
本文将带你了解Android应用开发Android WebView加载图片显示过大的处理教程(代码教程),希望本文对大家学Android有所帮助. Webview加载图片时,经常会遇到图片显示不符合 ...
- 3G应用开发之Android 传智播客 基础知识总结
3G应用开发之Android Android应用开发之3G 3G应用开发之Android 3G应用开发之Android 应用开发之 讲师: 讲师:黎活明 北京传智 播客教育 www.itcast.c ...
- android添加截图功能,Android应用开发之Android 5.0及以上编程实现屏幕截图功能的方法...
本文将带你了解Android应用开发Android 5.0及以上编程实现屏幕截图功能的方法,希望本文对大家学Android有所帮助. 本文实例讲述了Android 5.0及以上编程实现屏幕截图功能 ...
最新文章
- 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732EM电磁流量计变送器如何接线!
- 厉害了,Spring Cloud Alibaba 发布 GA 版本!
- Jmeter_前端RSA加密下的登陆模拟_引用js文件实现(转)
- linux内核杂记(8)-进程调度(3)
- asp.net mvc 权限过滤和单点登录(禁止重复登录)
- 使用swoole进行消息推送通知,配合vb.net进行客户端开发一样爽[开发篇]
- 模拟注册用户,按照以下要求实现相关功能:
- Vue + webpack 项目配置化、接口请求统一管理
- 统计整数n的二进制表示中1的个数
- Java-ConfigHelper工具类
- MySQL5.7收集表统计信息时对该表上增删改查的影响
- QT 5.3 VS2010 中文
- ios php 聊天_解析php做推送服务端实现ios消息推送
- C++学习笔记 之 循环
- autobuddy in mfc导致的错误
- cryptojs des php,前端CryptoJS AES/DES加解密与后端PHP AES/DES加解密
- 2021-08-30二叉树后向遍历 leetcode 栈
- Java从入门到精通第一版(Java基础)
- linux查看进程占用连接数,Linux命令排查线上问题常用的几个
- 哈尔滨五星酒店马桶刷洗杯子事件舆情监测报告
热门文章
- 优雅的使用Laravel之phpstorm配置
- 3.AngularJS-过滤器
- 闯过这 54 关,点亮你的 Git 技能树 (五) - 完结篇
- JavaScript 设计模式之构造函数模式
- jenkins学习笔记2-在centos中安装jenkins master测试环境
- 在两个有序的数组中找第N个数,二分查找 O(lgm+lgn)级
- PPC系统常见启动项(StartUp)解说
- x264_param_default
- 数字后端——可制造性设计
- EPSON 自带CCD图像处理包的典型应用框架