我创建了一个装扮游戏应用程序。用户完成他的角色打扮后,他/她可以将其保存到应用程序的画廊。
我在画布上使用canvas和drawbitmap来生成最终图像,然后显示在应用程序的库中。 xhdpi图像大小应为600x900像素。当这个图像显示在普通的android图库中时,它显示为600x900,它(从信息中获取)看起来足够大。但是,当我在我的应用程序中显示它时,虽然ImageView设置为wrap_content,但它看起来要小得多。此外,在打扮时,它也设置为wrap_content,它看起来比应用程序库中的那个更大。
我的理论是,因为我试图以编程方式设置它 .setImageDrawable(Drawable.createFromPath(路径)); 并且因为屏幕是xhdpi,它将大小除以2。
我该怎么办?
答案 0 :(得分:0)
可能您正在测试的设备不是xhdpi
,而是hdpi
或mdpi
。
当您在密度存储桶中提供图形时,Android会负责调整该图像的大小,使其在所有设备上保持相同的物理尺寸(也就是说,屏幕上以厘米为单位)。
如果您想使用raw drawable,可以在res/drawable-nodpi
文件夹中提供图片。
如果您想保留密度存储分区,但图形太小,请在res/drawable-mdpi
,res/drawable-hdpi
和res/drawable-xhdpi
中提供正确的尺寸。
我认为通过Drawable.createFromPath()
无法阻止此行为。您可以使用BitmapFactory
直接加载位图,并使用setImageBitmap()
将其提供到ImageView中:
File f = new File(path);
Bitmap b = BitmapFactory.decodeFile(f.getAbsolutePath());
imageView.setImageBitmap(b);