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[]资源文件相互转换