繁体   English   中英

设置ImageView将Drawable大小除以2

[英]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 ,而是hdpimdpi的设备上进行测试。

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

如果要使用原始可绘制对象,则可以在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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM