关于bitmap,为什么android会有bitmap
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相关推荐
- android bitmap着色,android开发 替换bitmap中的颜色值
/** * 将bitmap中的某种颜色值替换成新的颜色 * @param bitmap * @param oldColor * @param newColor * @return */ public ...
- 【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示例 | DiskLruCache 开源库 | 代码示例 )
文章目录 一.Google 官方 Bitmap 相关示例参考 二.磁盘缓存类 DiskLruCache 三.磁盘缓存初始化 四.存储数据到磁盘缓存中 五.从磁盘缓存中读取数据 六. Android 1 ...
- 【Android 内存优化】Bitmap 内存占用计算 ( Bitmap 图片内存占用分析 | Bitmap 内存占用计算 | Bitmap 不同像素密度间的转换 )
文章目录 一.Bitmap 内存占用 二.Bitmap 内存占用计算示例 三.Bitmap 内存占用与像素密度 四.Bitmap 内存占用与像素密度示例 一.Bitmap 内存占用 在 Android ...
- Android中实现Bitmap在自定义View中的放大与拖动
一基本实现思路: 基于View类实现自定义View –MyImageView类.在使用View的Activity类中完成OnTouchListener接口,实现对MotionEvent事件的监听与处理 ...
- Android view转bitmap,byte[]转Bitmap
1.自定义marker布局文件即自定义view文件 <?xml version="1.0" encoding="utf-8"?> <Linea ...
- Android下利用Bitmap切割图片
在自己自定义的一个组件中由于需要用图片显示数字编号,而当前图片就只有一张,上面有0-9是个数字,于是不得不考虑将其中一个个的数字切割下来,需要显示什么数字,只需要组合一下就好了. 下面是程序的关键代码 ...
- android bitmap对比,Android Bitmap和Drawable的对比
Android Bitmap和Drawable的对比 Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565.RGB888.作为一种逐像素的显示对象执行效率高,但 ...
- android bitmap 替换指定颜色,Android 实现把bitmap图片的某一部分的颜色改成其他颜色...
把bitmap图片的某一部分的颜色改成其他颜色 private Bitmap ChangeBitmap(Bitmap bitmap){ int bitmap_h; int bitmap_w; int ...
- android bitmap回收,android BitMap回收
bitmap在android中使用较多,但是如果不对其进行回收,将会导致内存问题. [第一种方法]及时回收bitmap内存: 一般而言,回收bitmap内存可以用到以下代码 if(bitmap != ...
最新文章
- 关掉可穿戴部门后,英特尔还将调整自动驾驶业务
- Altium Protel PCB Layer
- 布局练习——选择水果
- PMCAFF | 一个CRM产品大神的产品之路
- 一道简单的Fibonacci
- SAP Spartacus基于travis的持续集成
- POJ 2135 最小费用最大流
- WebApiClient与Asp.net core DI的结合
- vs中html如何设计分页_如何在电路设计中使用负载线(Load Line)?
- TortoiseGIT创建及合并分支
- php js后端渲染,webpack后端渲染详解
- LXC与宿主机共享目录(七)
- C++中-运算符与.运算符的具体使用
- paip..提升安全性----增加自毁功能
- 暴风一号病毒(1kb病毒),U盘只剩快捷方式,文件消失
- 微信公众号申请及文章发送详细流程介绍
- signature=530d9c5e7e99d796faa35352560aede4,Visual Detection of Volcanic Plumes
- 神舟电脑文件丢失怎么办?分享文件丢失常见原因和恢复方法
- 企业如何申请测绘资质?需要那些人员材料?
- iframe解决跳转登录界面问题