我们知道在Android中ImageView是一个用于显示图像的控件,比如在很多联系人方面的应用中,需要为联系人拍摄头像,并将得到的头像放在一个 ImageView对象中显示。通常,在没有为联系人拍摄头像之前,ImageView对象中显示的是一个缺省的图片。因此,在保存联系人头像数据时,需要比较拍摄前和拍摄后两个图像是否一致,因为拍摄后是可能取消拍摄结果的,因此有可能造成拍摄动作发生前后ImageView中显示的是同一个图像。只有当不一样时,才将ImageView对象中的图像保存到数据库中,否则不用保存,这样一方面可以提高性能,另一方面可以节省空间。

  根据上面的思路,我们可以在开始拍摄前获取ImageView对象中的图像,在保存数据的时候,再次从该ImageView对象中获取图像,然后比较先后所得到的像个图像是否一致,并进行进一步的处理。

从ImageView对象中获取图像的方法是什么呢?

从ImageView对象中获取图像的方法,就是ImageView类中的getDrawingCache()方法,比如下面的代码就是从一个ImageView对象iv_photo中获取图像:

Bitmap obmp = Bitmap.createBitmap(iv_photo.getDrawingCache());

但是需要说明的是:

    1. 在调用getDrawingCache()方法从ImageView对象获取图像之前,一定要调用setDrawingCacheEnabled(true)方法:

  iv_photo.setDrawingCacheEnabled(true);

否则,无法从ImageView对象iv_photo中获取图像;

   2.在调用getDrawingCache()方法从ImageView对象获取图像之后,一定要调用setDrawingCacheEnabled(false)方法:

  iv_photo.setDrawingCacheEnabled(false);

以清空画图缓冲区,否则,下一次从ImageView对象iv_photo中获取的图像,还是原来的图像。

如何获得ImageView中的图像的更多相关文章

  1. 回收ImageView占用的图像内存

    使用方法: RecycleBitmap.recycleImageView(mSelectorView);   参数为imageview /** * 回收ImageView占用的图像内存; * 使用了本 ...

  2. Android学习笔记:如何设置ImageView中图片的显示方式

    我们在用ImageView显示图片时,很多情况下图片的大小与ImageView的尺寸不是完全一样的.这时就涉及到该如何设置显示图片了. ImageView有个重要的属性是ScaleType,该属性用以 ...

  3. Glide加载图片到自定义的圆形ImageView中不显示

    当使用自定义的圆形ImageView时,发现使用Glide加载并设置默认初始图片时,自定义的ImageView一直显示默认图片,无法更新到加载的图片. 使用下面代码可以解决这个问题 Glide.wit ...

  4. PS中的图像知识

    图像处理对于前端工作来说是一个不能回避的问题,ps技术也是我们必备的技能.用法可以在使用中不断的熟练,但针对前端技术本身的一些知识点,需要我们平时不断的积累才能够在使用中不出现问题. 如今的办公,已经 ...

  5. 如何获取imageView中当前内容的相关信息并比较?

    public class MainActivity extends Activity implements OnClickListener{ private Button button; privat ...

  6. (转)原始图像数据和PDF中的图像数据

    比较原始图像数据和PDF中的图像数据,结果见表1.1.表1.1中各种“解码器”的解释见本文后续的“PDF支持的图像格式”部分,“PDF中的图像数据”各栏中的数据来自开源的PdfView.如果您有兴趣查 ...

  7. Android中解决图像解码导致的OOM问题

    Android中解决图像解码导致的OOM问题 原文链接:http://blog.csdn.net/zjl5211314/article/details/7042017

  8. 如何在图像处理工具包ImagXpress中对图像进行捕捉、复制和粘贴

    如何在在ImagXpress中进行图像的捕捉. 复制和粘贴呢?下面详细来看一下,在多种情况下,图和实现这些操作. 捕捉屏幕图像 捕捉通过ImageXView窗口绑定的屏幕范围,以及保存到一个Image ...

  9. Android从imageview中获得bitmap

    第一种: 使用setDrawingCacheEnabled()和getDrawingCache()这两种方法,第一个是为了设置是否开启缓存,第二个就可以直接获得imageview中的缓存,一般来说需要 ...

随机推荐

  1. CoreML的学习

    在苹果官网下载模型model 链接: https://developer.apple.com/machine-learning/

  2. EA添加时序图

    在项目浏览器的空白处右击 http://blog.csdn.net/craftsman1970/article/details/70877530 不同于大部分面向对象或者UML的书籍,在讨论完类图/对 ...

  3. Q859 亲密字符串

    给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true :否则返回 false . 示例 1: 输入: A = "ab& ...

  4. PIE.NET-SDK插件式二次开发文档

    一 PIE.Net开发环境部署 1.     开发环境部署 确保Win7系统已安装SP1 安装Visual Studio2013(支持VS2010/2012/2013/2015) 安装PIESDK.e ...

  5. 使用Redis 配置替换fastjson 反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

    新建的GenericFastJson2JsonRedisSerializer里面添加白名 添加: static {        ParserConfig.getGlobalInstance().ad ...

  6. Python 中数据的序列化和反序列化(json处理)

    概念: JSON(JavaScript Object Notation):是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming ...

  7. [转]一种可以避免数据迁移的分库分表scale-out扩容方式

    原文地址:http://jm-blog.aliapp.com/?p=590 目前绝大多数应用采取的两种分库分表规则 mod方式 dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月 ...

  8. Linux下Makefile的automake生成全攻略--转

    http://www.yesky.com/120/1865620.shtml 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下 ...

  9. 浅谈C#中HttpWebRequest与HttpWebResponse的使用方法

    1.第一招,根据URL地址获取网页信息get方法 public static string GetUrltoHtml(string Url,string type) { try { System.Ne ...

  10. 分页存储过程ROW_NUMBER() over(order by pid desc)

    分页存储过程 : create proc usp_GetMyPhotos  @pageIndex int,   --当前页码  @pageSize int,   --每页多少条  @pageCount ...