首页 > 其他 > 详细

赵雅智_setImageResource和setImageBitmap

时间:2014-06-22 19:29:58      阅读:392      评论:0      收藏:0      [点我收藏+]

在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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!