2019独角兽企业重金招聘Python工程师标准>>>

一直纠结的问题终于解决了,就是bitmap这个玩意

之前在android中,大量的使用图片,不仅可以使用Imageview来显示,可以做button,window的背景.,你只要放在xml中进行操作,直接利用R.drawable.fiel  就可以引用了,但是你可以想想,如果是访问网络获取的图片,或者字节,你怎么接受呢,他不会返回一张image,网络的传输是通过流的,所以这个时候就用到了Bitmap.

Bitmap和BitmmapFactory

Bitmap代表一张位图,可以进行编辑了,操作了,修改了等,一般我们就利用BitmapFactory来操作得出bitmap

想实例出来一个bitmap有一个静态的就是BitmapFactory 他是一个工具类,提供了各种方法来创建Bitmap有下面四种方法

BitmapFactory.decodeByteArray(byte[] data,int offset,int length)从指定字节数组的offset位置开始,将长度为length的字节,转化成一个Bitmap

BitmapFactory.decodeFile(String pathName)这个就不用说了吧,从pathName指定的文件中进行解析创建Bitmap对象

BitmapFactory.decodeFileDescriptor(FileDescriptor fd)用于从FileDescriptor对应的文件中解析创建Bitmap对象

BitmapFactory.decodeResource(Resource res,int id)这个相当简单,用于根据指定的ID从指定的资源中解析,创建Bitmap对象

BitmapFactory.decodeSream(InputSream is)用于从指定的输出流中解析

一般情况下,我们只要图片放在drawable目录下就可以了,然后通过获取ID,直接就自动封装成一个Drawable对象,但是,想一下,手机的内存比较小,你懂的,如果你不断的去解析创建一个Bitmap对象,可能由于Bitmap前面创建的还没有回收,导致内存不足,会出现异常,常见的outofmemory,这就是所谓的内存溢出(以前我还不知道,感觉好深奥,呵呵).所以我们要即使的去回收他,android中提供了两个方法,

boolean isRecycled()返回该bitmap对象是否已经被回收

void recycle(); 强制一个Bitmap对象立即回收自己.

举例 比如我有一个ImageView控件 ImageView image=(ImageView)findViewById(R.id.image)

BitmapDrawable bit=(BitmapDrawable)image.getDrawable();

if(bit !=null && bit.getBitmap.isRecycled()){

bit.getBitmap.recycle();

}

在补充一下Bitamp是一个位图,而BitmapDrawable就是封装了一个Bitmap,所以要获得Bitmap,可以直接getBitmap();

转载于:https://my.oschina.net/u/556624/blog/85502

关于bitmap,为什么android会有bitmap相关推荐

  1. android bitmap着色,android开发 替换bitmap中的颜色值

    /** * 将bitmap中的某种颜色值替换成新的颜色 * @param bitmap * @param oldColor * @param newColor * @return */ public ...

  2. 【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示例 | DiskLruCache 开源库 | 代码示例 )

    文章目录 一.Google 官方 Bitmap 相关示例参考 二.磁盘缓存类 DiskLruCache 三.磁盘缓存初始化 四.存储数据到磁盘缓存中 五.从磁盘缓存中读取数据 六. Android 1 ...

  3. 【Android 内存优化】Bitmap 内存占用计算 ( Bitmap 图片内存占用分析 | Bitmap 内存占用计算 | Bitmap 不同像素密度间的转换 )

    文章目录 一.Bitmap 内存占用 二.Bitmap 内存占用计算示例 三.Bitmap 内存占用与像素密度 四.Bitmap 内存占用与像素密度示例 一.Bitmap 内存占用 在 Android ...

  4. Android中实现Bitmap在自定义View中的放大与拖动

    一基本实现思路: 基于View类实现自定义View –MyImageView类.在使用View的Activity类中完成OnTouchListener接口,实现对MotionEvent事件的监听与处理 ...

  5. Android view转bitmap,byte[]转Bitmap

    1.自定义marker布局文件即自定义view文件 <?xml version="1.0" encoding="utf-8"?> <Linea ...

  6. Android下利用Bitmap切割图片

    在自己自定义的一个组件中由于需要用图片显示数字编号,而当前图片就只有一张,上面有0-9是个数字,于是不得不考虑将其中一个个的数字切割下来,需要显示什么数字,只需要组合一下就好了. 下面是程序的关键代码 ...

  7. android bitmap对比,Android Bitmap和Drawable的对比

    Android Bitmap和Drawable的对比 Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565.RGB888.作为一种逐像素的显示对象执行效率高,但 ...

  8. android bitmap 替换指定颜色,Android 实现把bitmap图片的某一部分的颜色改成其他颜色...

    把bitmap图片的某一部分的颜色改成其他颜色 private Bitmap ChangeBitmap(Bitmap bitmap){ int bitmap_h; int bitmap_w; int ...

  9. android bitmap回收,android BitMap回收

    bitmap在android中使用较多,但是如果不对其进行回收,将会导致内存问题. [第一种方法]及时回收bitmap内存: 一般而言,回收bitmap内存可以用到以下代码 if(bitmap != ...

最新文章

  1. 关掉可穿戴部门后,英特尔还将调整自动驾驶业务
  2. Altium Protel PCB Layer
  3. 布局练习——选择水果
  4. PMCAFF | 一个CRM产品大神的产品之路
  5. 一道简单的Fibonacci
  6. SAP Spartacus基于travis的持续集成
  7. POJ 2135 最小费用最大流
  8. WebApiClient与Asp.net core DI的结合
  9. vs中html如何设计分页_如何在电路设计中使用负载线(Load Line)?
  10. TortoiseGIT创建及合并分支
  11. php js后端渲染,webpack后端渲染详解
  12. LXC与宿主机共享目录(七)
  13. C++中-运算符与.运算符的具体使用
  14. paip..提升安全性----增加自毁功能
  15. 暴风一号病毒(1kb病毒),U盘只剩快捷方式,文件消失
  16. 微信公众号申请及文章发送详细流程介绍
  17. signature=530d9c5e7e99d796faa35352560aede4,Visual Detection of Volcanic Plumes
  18. 神舟电脑文件丢失怎么办?分享文件丢失常见原因和恢复方法
  19. 企业如何申请测绘资质?需要那些人员材料?
  20. iframe解决跳转登录界面问题

热门文章

  1. Javascript中的树结构
  2. ACL控制访问列表原理+实验
  3. docker教程之从一头雾水到不一头雾水(1)
  4. 深入浅出HTTPS基本原理
  5. hihoCoder挑战赛29
  6. 黑马程序员_Java解析网络数据流的三种特殊方法
  7. 什么是COM与DCOM
  8. 在线测试所有浏览器的兼容性
  9. 阿里云rds mysql数据库数据恢复到ecs中
  10. Python:打印目录下最大的十个文件