怎么给bitmap赋值 android

 我来答
微博honey_11
2016-09-21 · TA获得超过191个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:327万
展开全部

Bitmap是Android系统中的图像处理的最重要的类之一。用它可以获取图像文件信息,对图像进行旋转,剪切,放大,缩小等操作。

Bitmap代表一张位图,使我们在开发中常用的资源,下面就对Bitmap进行简单的介绍。

Bitmap的获取方法:

1、使用BitmapDrawable

      BitmapDrawable里封装的图片就是一个Bitmap对象,我们要把Bitmap包装成BitmapDrawable对象,可以调用BitmapDrawable的构造方法:

BItmapDrawbale drawable = new BItmapDrawable(bitmap);

如果要获取BitmapDrawable所包装的Bitmap对象,则可调用BitmapDrawable的getBitmap()方法:

Bitmap bitmap = drawbale.getBitmap();

2、Bitmap提供了一些静态方法来创建Bitmap对象(仅列举几个):

      createBitmap(Bitmap source,int x,int y,int width,int height):从原位图source的指定坐标(x,y)开始,从中挖取宽width,高heigtht的一块出来,创建新的Bitmap对象。

createScaledBitmap(Bitmap source,int width,ing height,boolean fliter):对源位图进行缩放,缩放称宽width,高heigth的新位图。

createBitmap(int width,int height,Bitmap.Config config):创建一个宽width,高height的可变的新位图。

createBitmap(Bitmap source, int x,int y,int width,int height ,Matrix m,boolean fliter):从源位图source的指定坐标(x,y)开始,挖取宽width,高height的一块来,创建新的Bitmap对象,并按照Matrix指定的规则进行变换。

3、通过对资源文件的解析获取Bitmap对象

      在这里就要用到BitmapFactory这个工具类,提供的方法如下:

decodeByteArray(byte[] data, int offset,int length):从指定字节数组的offset位置开始,将长度为length的字节数据解析成Bitmap对象。

decodeFIle(String pathName):从pathName指定的文件中解析、创建Bitmap对象。

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

decodeResource(Resource res,int id):用于根据给定的资源ID从指定的资源文件中解析、创建Bitmap对象。

decodeStream(InputStream is):用于从指定输入流中介解析、创建Bitmap对象。

但是,在系统不断的解析、创建Bitmap的过程中,可能会由于内存小或其他原因,导致程序运行时发生OutOfMemory错误。

为此,Android为Bitmap提供了内存回收方法:

void recycle():强制回收Bitmap对象。

还有用于判断Bitmap 对象是否被回收的方法:

boolean isRecycle();

如果Android应用需要访问系统相册,都需要借助BitmapFactory解析、创建Bitmap对象。

4 从安卓无忧中看bitmap的几种例子,下面是加载bitmap的例子,可以看里面的源码:


如果您对答案满意,请您关注一下名字中微博。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式