我目前正在考虑让我的Android应用程序在Kindle Fire上运行。我有MDPI和HDPI屏幕的图片,但是我注意到当我在Kindle上加载应用程序时,它会显示MDPI图片并展开我的一些艺术作品,我正在填充一些我想要的东西。
我想知道在某些情况下Android上是否有任何方法(比如我是使用Kindle),强制它从HDPI图片加载,而不是默认为MDPI。
我确实知道我可以将我的HDPI图片保存在MDPI文件夹中,名称略有不同,并检查每个资源,但这是一个很大的开销,更不用说我的应用程序的大小增加,我也想避免。
由于
更新:还在看这个。我想我真正得到的是,有没有办法让Android设备选择HDPI作品而不是MDPI,即使MDPI作品存在?
答案 0 :(得分:1)
Kindle Fire是1024x600,160 dpi,对吧?
您可以尝试使用该分辨率的新资源。并将它们放在MDPI文件夹中。 在/ res目录中添加layout-large并在那里复制您的布局文件。 这样,使用Kindle Fire,您可以使用布局大的布局指向MDPI文件夹中更大的资源。
并确保始终使用九补丁抽取资源。
希望这会对你有所帮助。
答案 1 :(得分:1)
在此期间结束使用黑客解决方案,但我遇到了这个问题:
I don't want Android to resize my bitmap Automatically
几乎只需要将我的hdpi图像移动到nodpi文件夹中(为了避免缩放问题)并稍微更改名称(我在名称中添加了_hd)。之后,我创建了一个图像加载器,它接收我想要的图像的名称,并返回_hd图像,如果设备是hdpi或者它是点火:
id = ctx.getResources().getIdentifier(string + "_hd", "drawable", context.getPackageName());
注意:文档确实不鼓励使用getIdentifier(),因为它的效率低于仅使用资源地址,但我查看了加载时间并使用getIdentifier加载1000个图像需要0.25秒,这是很好,特别是因为我没有加载任何接近那么多图像的地方。
答案 2 :(得分:0)
您可以尝试使用该分辨率的新资源,并将它们放在MDPI
文件夹中。在layout-large
目录添加/res
并在那里复制您的布局文件。这样,使用Kindle Fire,您可以使用layout-large
处的布局指向MDPI
文件夹中更大的资源。