设置ImageView将Drawable大小除以2

时间:2013-08-13 11:17:00

标签: android drawable

我创建了一个装扮游戏应用程序。用户完成他的角色打扮后,他/她可以将其保存到应用程序的画廊。

我在画布上使用canvas和drawbitmap来生成最终图像,然后显示在应用程序的库中。 xhdpi图像大小应为600x900像素。当这个图像显示在普通的android图库中时,它显示为600x900,它(从信息中获取)看起来足够大。但是,当我在我的应用程序中显示它时,虽然ImageView设置为wrap_content,但它看起来要小得多。此外,在打扮时,它也设置为wrap_content,它看起来比应用程序库中的那个更大。

我的理论是,因为我试图以编程方式设置它 .setImageDrawable(Drawable.createFromPath(路径)); 并且因为屏幕是xhdpi,它将大小除以2。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

可能您正在测试的设备不是xhdpi,而是hdpimdpi

当您在密度存储桶中提供图形时,Android会负责调整该图像的大小,使其在所有设备上保持相同的物理尺寸(也就是说,屏幕上以厘米为单位)。

如果您想使用raw drawable,可以在res/drawable-nodpi文件夹中提供图片。

如果您想保留密度存储分区,但图形太小,请在res/drawable-mdpires/drawable-hdpires/drawable-xhdpi中提供正确的尺寸。

我认为通过Drawable.createFromPath()无法阻止此行为。您可以使用BitmapFactory直接加载位图,并使用setImageBitmap()将其提供到ImageView中:

File f = new File(path);
Bitmap b = BitmapFactory.decodeFile(f.getAbsolutePath());
imageView.setImageBitmap(b);