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

Posted 风雨缠舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法进行设置。

以上是关于bitmap和drawable的相互转化以及setImageResource(),setImageDrawable(),setImageBitmap()的主要内容,如果未能解决你的问题,请参考以下文章

Android Bitmap 与 Drawable之间的区别和转换

Android-DrawableBitmapbyte[]资源文件相互转换

Android Drawable 和String 相互转化

Android 使用SQLite存储以及读取Drawable对象

C# Bitmap类型与Byte[]类型相互转化

Android 怎么把imageview 转为Bitmap