详解Bitmap使用,以及BitmapDrawable和BitmapFactory
来源:互联网 发布:知乎提问怎么取消匿名 编辑:程序博客网 时间:2024/06/12 01:12
Android中Bitmap代表一张位图(位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩位图文件图像效果好,但是非压缩格式的,需要占用较大存储空间,不利于在网络上传送)
本文详细介绍了Bitmap相关问题。
1. Bitmap,Dawable,BitmapDrawable
Bitmap是Drawable的一种。通过BitmapDrawable联系,简单地理解为 Bitmap 储存的是像素信息,Drawable 储存的是 对 Canvas 的一系列操作。
而 BitmapDrawable 储存的是「把 Bitmap 渲染到 Canvas 上」这个操作。
Bitmap和Drawable相互转化:
BitmapDrawable里封装的图片就是一个Bitmap对象。可以调用BitmapDrawable的构造器将Bitmap对象包装成BitmapDrawable对象。
BitmapDrawable drawable=new BitmapDrawable(bitmap);
获取一个BitmapDrawable所包装的Bitmap对象
Bitmap bitmap=drawable.getBitmap();
2,Bitmap常用方法: `
Bitmap bitmap = Bitmap.createBitmap(int width, int height, Config config)//创建指定格式、大小的位图 Bitmap bitmap = Bitmap.createBitmap(source,x,y,width, height, config);// 建立从源位图坐标(x,y)中取width*height一块区域 Bitmap bitmap = Bitmap.createScaledBitmap(Bitmap src,int dstWidth,int dstHeight, boolean filter)//以src为原图,创建新的图像,指定新图像的高(dstHeight)宽(dstWidth)以及是否可变。
3,BitmapFactory
Bitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。这必然是某个辅助类提供了创建Bitmap的接口,而这个类的实现通过JNI接口来实例化Bitmap的,这个类就是BitmapFactory——用于从不同的数据源(file,streams, byte-arrays)中获取bitmap对象。
4,Bitmapfacory 常用方法 :
Bitmap bitmap = BitmapFactory.decodeResource(Resources res, int id)//从指定资源id中获取Bitmap bitmap = BitmapFactory.decodeFile(String pathName) //读取一个资源文件得到一个位图。如果位图数据不能被解码,或者opts参数只请求大小信息时,则返回NULL
5.Bitmap回收机制
使用isRecyled()方法判断是否回收,返回true时回收。使用recycle()方法,强制回收。
Bitmap bitmap=if(bitmap!=null&&!bitmap.getBitmap().isRecycled()){ bitmap.getBitmap().recycle();} //判断是否回收,若未回收强制回收
1 0
- 详解Bitmap使用,以及BitmapDrawable和BitmapFactory
- Bitmap,BitmapDrawable,BitmapFactory的简单使用,以及AssetManager的使用
- Bitmap,BitmapDrawable,BitmapFactory用法
- BitmapDrawable和Bitmap 详解和 BitmapDrawable和Bitmap
- android bitmap 属性 BitmapFactory 属性 bitmapDrawable属性
- BitmapDrawable和Bitmap.XML的使用
- Bitmap和BitmapFactory对象使用
- Android突破一之Bitmap、BitmapFactory、BitmapDrawable类
- Pixel,Bitmap,Drawable,Canvas,Paint,Matrix,BitmapDrawable,BitmapFactory图相关
- 使用Bitmap.createBitmap 创建和BitmapFactory.decode....获取Bitmap对象
- Bitmap和BitmapFactory
- 图片比例缩放以及bitMap转BitmapDrawable
- 初学Android,图形图像之使用Bitmap和BitmapFactory(二十四)
- Bitmap和BitmapFactory的简单使用(9.17)
- android的Bitmap和BitmapFactory类的使用
- 初学Android,图形图像之使用Bitmap和BitmapFactory(二十四)
- 关于bitmap和bitmapdrawable之间的转换
- Bitmap XML和BitmapDrawable应用实例
- Vue.js——vue-resource全攻略
- 网易短网址转换
- sort的升级
- OpenGL ES入门09-GLSL实现常见特效
- SSH命令,ls命令
- 详解Bitmap使用,以及BitmapDrawable和BitmapFactory
- 懒汉处理dapper字段名与属性名的映射方式
- 用ionic框架开发移动端应用基本介绍和原理
- TextView属性大全
- 静态顺序表------C语言实现
- 为什么BeanFactory对象可以用ApplicaionContext对象的实例进行实例化
- 性能测试实施(1)之团队组建
- 关于指针的一点知识和九度oj1518
- 经典算法题:大数据处理常见算法题