BitmapDrawable维度不正确

时间:2012-12-04 15:54:13

标签: android bitmap drawable

我正在初始化这样的Drawable:

Drawable drawable = new BitmapDrawable(bitmap);

位图的尺寸为50 x 77(使用调试器确认,此值在mWidth和mHeight字段中设置。)

但是我的drawable初始化大小为33 x 51,为什么会这样?

我在这一行之后检查了drawable变量,值为:

mBitmapWidth = 33

mBitmapHeight = 51

drawable.getIntrinsicWidth();
drawable.getIntrinsicHeight();

也会返回33 x 51。

但是drawable也有位图字段mBitmap,它具有正确的大小50 x 77.那么为什么drawable被初始化为33 x 51?

2 个答案:

答案 0 :(得分:3)

Bitmap的尺寸为像素,而Drawable的尺寸为 dp (密度相关像素)。

在您的情况下,显示器的密度可能类似于1.5:

  

50/33 = 77/51 = 1.5

请注意,通过setTargetDensity方法设置密度时,会更新可绘制尺寸。

答案 1 :(得分:2)

BitmapDrawable会将您的位图尺寸调整为您设备的密度。

请注意,您使用的构造函数已弃用,文档建议使用BitmapDrawable(Resources res, Bitmap bitmap)