bitmap和drawable的相互转化以及setImageResource(),setImageDrawable(),setImageBitmap()

从本地获取drawable图片:getResources().getDrawable(R.drawable.**)

获取bitmap:Bitmap b=BitmapFactory().decodeResource(context.getResource(),R.drawable.**);

drawable转bitmap:

   Drawable a=**;Bitmap b=(BitmapDrawable)a.getBitmap()

 

bitmap转drawable:

    Bitmap  b=**

   Drawble a=new BitmapDrawable(context.getResources(),b);

setImageResource():这个方法是在UI线程中对图片读取和解析的,所以有可能对一个Activity的启动造成延迟。所以如果顾虑到这个官方建议用setImageDrawable和setImageBitmap来代替。

setImageBitmap():实际上setImageBitmap做的事情就是把Bitmap对象封装成Drawable对象,然后调用setImageDrawable来设置图片,不如直接使用setImageDrawable()

setImageDrawable():setImageDrawable是最省内存高效的,如果担心图片过大或者图片过多影响内存和加载效率,可以自己解析图片然后通过调用setImageDrawable方法进行设置。

时间: 2024-08-11 09:56:02

bitmap和drawable的相互转化以及setImageResource(),setImageDrawable(),setImageBitmap()的相关文章

Bitmap,byte[],Drawable相互转化

1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2.Canvas画布,绘图的目的区域,用于绘图 3.Bitmap位图,用于图的处理 4.Matrix矩阵 1.从资源中获取Bitmap 1 Resources res = getResources();2 Bitmap bmp = BitmapFactory.decode

Android中Bitmap,byte[],Drawable,InputStream相互转化工具类

在新浪看到一些数据流的转化,分享一下: 1.将byte[]转换成InputStream   public InputStream Byte2InputStream(byte[] b) { ByteArrayInputStream bais = new ByteArrayInputStream(b); return bais; } 2. 将InputStream转换成byte[]   两种方式: 一. public static final byte[] InputStream2Bytes(Inp

Android中Bitmap,byte[],Drawable相互转化

一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2.Canvas画布,绘图的目的区域,用于绘图 3.Bitmap位图,用于图的处理 4.Matrix矩阵 二.Bitmap 1.从资源中获取Bitmap 1 Resources res = getResources();2 Bitmap bmp = Bitm

Android 图片Bitmap,drawable,res资源图片之间转换

一.知识介绍 ①res资源图片是放在项目res文件下的资源图片 ②BitMap位图,一般文件后缀为BMP,需要编码器编码,如RGB565,RGB8888等.一种逐像素的显示对象,其执行效率高,但缺点也很明显,存储效率低. ③Drawable,通用的图形对象,它可以装载常用的图像,GIF,PNG,JPG,也支持BMP,提供一些高级的可视化的对象,如渐变,图形等. 二.项目案例 [步骤] ①将图片放入res/drawable文件夹中,这里面的图片属于res资源图片 ②将图片处理定义成工具类,方便使用

Android中android.graphics下面的绘制图形类Canvas,Paint,Bitmap,Drawable

1.概念区别: 很多网友刚刚开始学习Android平台,对于Drawable.Bitmap.Canvas和Paint它们之间的概念不是很清楚, 其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap.Canvas相关的都有所变化. 首先让我们理解下Android平台中的显示类是View,但是还提供了底层图形类android.graphics,今天所说的这些均为graphics底层图形接口. Bitmap - 称作位图,一般位图的文件格式后缀为b

Android中Bitmap和Drawable

一.相关概念1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2.Canvas画布,绘图的目的区域,用于绘图3.Bitmap位图,用于图的处理4.Matrix矩阵 二.Bitmap 1.从资源中获取Bitmap Java代码   Resources res = getResources(); Bitmap bmp = Bi

Android Bitmap与DrawAble与byte[]与InputStream之间的转换工具类【转】

package com.soai.imdemo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.grap

Bitmap和Drawable的互相转换

刚好之前的项目实用到.怕遗忘了.就先记录下来.然后会用到的时候直接来这copy使用就好了. 1.Bitmap ---->Drawable: public static Drawable bitmapToDrawable(Bitmap bitmap) { BitmapDrawable bd = new BitmapDrawable(bitmap); return bd; } 2.Drawable---->Bitmap: public static Bitmap drawableToBitmap(

Bitmap 和Drawable 的区别

Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565.RGB888.作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低.我们理解为一种存储对象比较好. Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF.PNG.JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变.图形等.因此Bitmap也是Drawable对象. Bitmap转Drawable:Bitmap bitmap = new