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频道!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在IE让用户自动下载ActiveX控件?

IE中要嵌一个ActiveX OCX,如何让用户在打开这个IE时自动安装并注册? 假如该页面完全load后并没发现需要的ocx,如何提示给用户? 1.做好ACTIVEX控件,写inf文件。打包成CAB。 2.用signcode给cab数字签名(数字签名可到中…

ffmpeg学习笔记-native原生绘制

上次已将ffmpeg的动态库编译出来了&#xff0c;并且使用了ffmpeg的转码功能&#xff0c;成功将mp4格式视频转化为yuv视频&#xff0c;这篇文章基于上次测试的demo&#xff0c;使用surfaceview显示解码完成的像素数据 布局设置和权限添加 布局 <FrameLayout xmlns:android&qu…

CoreData一些基本概念

Core Data涉及到的几个主要的概念可以对应数据库来理解&#xff1a;NSManagedObjectContext&#xff08;托管对象上下文&#xff09;&#xff1a;数据库NSEntityDescription&#xff08;实体描述&#xff09;&#xff1a;表NSFetchRequest&#xff08;请求&#xff09;&#xf…

BDC技术(一个例子)

BDC技术 BDC&#xff08;Batch Data Conversion&#xff09;&#xff1a;在SAP系统里&#xff0c;由于某种原因&#xff0c;可能需要重复输入数据&#xff0c;&#xff08;数据不同&#xff0c;但是操作是相同的&#xff0c;典型的情形就是切换系统的时候&#xff0c;旧系统的数…

华为android怎样隐藏软件,华为怎么打开隐藏应用功能

隐藏应用是没有密码的&#xff0c;隐藏应用的方法&#xff1a;在主桌面两指分开&#xff0c;进入隐藏应用界面&#xff0c;点击(添加)&#xff0c;然后点击要隐藏的应用&#xff0c;再点击确定即可。应用锁有密码&#xff0c;是机主设定的&#xff0c;如果设置了指纹访问应用&a…

事务的传播性和隔离级别

事务的传播性&#xff1a;1、PROPOGATION_REQUIRES --需要在一个事务中执行2、PROPOGATION_SUPPOTS --不需要在一个事务中执行&#xff0c;如果有事务&#xff0c;也可以执行3 PROPOGATION_NOT_SUPPORTED --不支持在一个事务中执行&#xff0c;如果在…

Oracle建立表空间和用户

Oracle建立表空间和用户 建立表空间和用户的步骤&#xff1a; 用户 建立&#xff1a;create user username identified by "password"; 授权&#xff1a;grant create session to username;grant create table to username;grant create tablespace…

VC系统扫雷游戏外挂源代码程序下载(转帖

VC系统扫雷游戏外挂源代码程序下载&#xff08;转帖&#xff09;2008-03-04 10:25经过了多次测试写出了历史上第一个有点意义的MFC程序。效果差强人意。^_^ CODE:// CrackWinmineDlg.cpp : implementation file// #include "stdafx.h"#include "CrackWinmine.h&…

signature=54cb1c123491dc1a268a21f3502cccfc,Modelling information routing with noninterference

摘要&#xff1a;To achieve the highest levels of assurance, MILS architectures need to be formally analysed. A key challenge is to reason about the interaction between the software applications running on top of MILS core components, such as the separation…

JAVA面向对象程序设计(第二版) 袁绍欣 第四章答案

面向对象&#xff08;上&#xff09; 1.名词解释&#xff1a;构造方法、抽象 构造方法一般是用来初始化数据成员的&#xff0c;与类名相同&#xff0c;无返回值。 分为有参和无参数&#xff0c;当一个类中没有定义构造函数时&#xff0c;系统会给该类中加一个默认的空参数的构造…

转:看问题的5个层次

转自&#xff1a;http://www.narrativecard.com/%E7%9C%8B%E9%97%AE%E9%A2%98%E7%9A%845%E4%B8%AA%E5%B1%82%E6%AC%A1/ 转自&#xff1a;《创业教我的50件事》 事件当然要处理&#xff0c;就像疼痛必须注意。但若整天只忙于事件&#xff0c;就像疼了一个月还在猛吞止痛药&#…

鸿蒙系统公测版发布,鸿蒙OS2.0系统公测版什么时候发布-适配机型

鸿蒙OS2.0手机开发者Beta版本于今日已正式发布&#xff0c;那么鸿蒙OS2.0系统的公测版本上市时间&#xff0c;适配手机名单有哪些&#xff0c;接下来小编就为大家带来了解答&#xff0c;一起看看吧&#xff01;一、公测版发布时间12月16日&#xff0c;发布了鸿蒙OS2.0手机开发者…

jQuery实现分页

参考网上的资源(必优博客 http://www.biuuu.com/) 注意&#xff1a;CSS样式使分页导航水平显示&#xff0c;如果没有的话将以普通列表方式呈现。 <html><head><script type"text/javascript" src"Library/jquery1.3.1/dist/jquery.js">&…

对acm icpc 的随笔——01

1&#xff0c;提高编程能力2&#xff0c;学习算法&#xff08;读书&#xff0c;读论文&#xff0c;包括一些题目的验证&#xff09;3&#xff0c;准备好面临的挑战&#xff08;熟悉体型&#xff0c;调整心态&#xff09;4&#xff0c;启发思维 <时刻保持镇定&#xff0c;用心…

oracle常用的工具软件

PL/SQL DevelopertoadOBJECT BROWSEREmbarcadero Rapidsql转载于:https://blog.51cto.com/lsg123/1561234

angular 加入原生html,Angular HTML绑定

收到一只叮咚Angular 2.0.0和Angular 4.0.0 final仅为了安全的内容constructor(private sanitizer:DomSanitizer){}transform(style) {return this.sanitizer.bypassSecurityTrustHtml(style);//return this.sanitizer.bypassSecurityTrustStyle(style);// return this.sanitiz…

foriegn web site

http://www.codeproject.com www.ddj.com http://www.guru.com/ 转载于:https://www.cnblogs.com/liulf/archive/2009/06/11/1501670.html

Unity游戏开发之C#快速入门

C#是微软团队在开发.NET框架时开发的&#xff0c;它的构想接近于C、C&#xff0c;也和JAVA十分相似&#xff0c;有许多强大的编程功能。 个人感受是C#吸收了众多编程语言的优点&#xff0c;从中可以看到C、C、Java、Javascript、python的影子&#xff0c;设计思想都是相通的(过…

通过PowerShell获取Windows系统密码Hash

当你拿到了系统控制权之后如何才能更长的时间内控制已经拿到这台机器呢&#xff1f;作为白帽子&#xff0c;已经在对手防线上撕开一个口子&#xff0c;如果你需要进一步扩大战果&#xff0c;你首先需要做的就是潜伏下来&#xff0c;收集更多的信息便于你判断&#xff0c;便于有…

ant引入html页面,antdesign 中 使用 iconfont symbol方式引入图标不展示

最近在写项目遇到了一个问题&#xff0c;我使用vue框架搭建了一个项目。我创建了一个 index.js文件&#xff0c;内容为&#xff1a;import { Icon } from ant-design-vue;const IconFont Icon.createFromIconfontCN({scriptUrl: //at.alicdn.com/t/font_2296540_wpxzi5ar76.js…