码迷,mamicode.com
首页 > 其他好文 > 详细

赵雅智_setImageResource和setImageBitmap

时间:2014-06-22 19:31:16      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:android   setimagebitmap   setimageresource   

在4.0.4 r1.2中查看android.widget.ImageView源代码可以发现,setImageBitmap()方法其实是调用了setImageDrawable()方法进行重绘。

Sets a Bitmap as the content of this ImageView.  
  
Parameters:  
bm The bitmap to set  
  
@android.view.RemotableViewMethod  
public void setImageBitmap(Bitmap bm) {  
    // if this is used frequently, may handle bitmaps explicitly  
    // to reduce the intermediate drawable object  
    setImageDrawable(new BitmapDrawable(mContext.getResources(), bm));  
}  


Sets a drawable as the content of this ImageView.  
  
Parameters:  
drawable The drawable to set  
  
public void setImageDrawable(Drawable drawable) {  
    if (mDrawable != drawable) {  
        mResource = 0;  
        mUri = null;  
  
        int oldWidth = mDrawableWidth;  
        int oldHeight = mDrawableHeight;  
  
        updateDrawable(drawable);  
  
        if (oldWidth != mDrawableWidth || oldHeight != mDrawableHeigh{  
            requestLayout();  
        }  
        invalidate();  
    }  
}  


同样的布局文件,小分辨率手机:

1、使用setImageBitmap设置时,出现如下现象:

bubuko.com,布布扣

 

 2、使用setImageResource时,图片显示正常

bubuko.com,布布扣

 

 原因:

setImageResource(id)会根据设备分辨率进行图片大小缩放适配

setImageBitmap(BitmapFactory.decodeResource(res,id))大小需要手动调。

如果你提供了完整的各种分辨率下的图片的话,两种方法都应该不会有混乱。


赵雅智_setImageResource和setImageBitmap,布布扣,bubuko.com

赵雅智_setImageResource和setImageBitmap

标签:android   setimagebitmap   setimageresource   

原文地址:http://blog.csdn.net/zhaoyazhi2129/article/details/32080827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!