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方法进行设置。

 bmp = BitmapFactory.decodeFile(beanList.get(position).getSrc());
                        Drawable a = new BitmapDrawable(PictureDisplayActivity.this.getResources(),bmp);
                        imageSwitcher.setImageDrawable(a);

你可能感兴趣的:(Android基础,android)