[英]Setting ImageView divides Drawable size by two
我已经创建了一个装扮游戏应用程序。 用户完成自己的角色装扮后,可以将其保存到应用程序库中。
我在画布上使用canvas和drawbitmap生成最终图像,然后将其显示在应用程序的库中。 xhdpi图像尺寸应为600x900像素。 当此图像显示在常规android画廊中时,显示为600x900,并且(从信息中获取)看起来足够大。 但是,当我在应用程序中显示它时,尽管ImageView设置为wrap_content,但它看起来要小得多。 此外,在进行修饰时,它也设置为wrap_content,看起来比应用程序库中的大。
我的理论是,因为我尝试使用.setImageDrawable(Drawable.createFromPath(path));进行编程设置。 由于屏幕是xhdpi,因此它将尺寸除以2。
我能做什么?
您可能在不是xhdpi
,而是hdpi
或mdpi
的设备上进行测试。
当您在密度存储桶中提供图形时,Android将负责调整该图像的大小,以使其在所有设备上保持相同的物理尺寸(即,屏幕上的厘米大小)。
如果要使用原始可绘制对象,则可以在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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.