Android 在KindleFire上使用HDPI资源

Android 在KindleFire上使用HDPI资源,android,kindle-fire,hdpi,Android,Kindle Fire,Hdpi,我目前正在考虑让我的android应用程序在KindleFire上运行。我在MDPI和HDPI屏幕上都有插图,但我注意到当我在Kindle上加载应用程序时,它会显示MDPI插图,并延伸我的一些插图,我用比我想要的多一点的内容填充家长 我想知道在某些情况下(比如我在Kindle上),Android是否有办法强制从HDPI图片加载,而不是默认为MDPI 我确实意识到,我可以用稍微不同的名称将我的HDPI作品保存在MDPI文件夹中,并对每个资源进行检查,但这会带来很大的开销,更不用说增加我的应用程序的

我目前正在考虑让我的android应用程序在KindleFire上运行。我在MDPI和HDPI屏幕上都有插图,但我注意到当我在Kindle上加载应用程序时,它会显示MDPI插图,并延伸我的一些插图,我用比我想要的多一点的内容填充家长

我想知道在某些情况下(比如我在Kindle上),Android是否有办法强制从HDPI图片加载,而不是默认为MDPI

我确实意识到,我可以用稍微不同的名称将我的HDPI作品保存在MDPI文件夹中,并对每个资源进行检查,但这会带来很大的开销,更不用说增加我的应用程序的大小了,我也希望避免这种情况

谢谢


更新:仍然在看这个。我想我真正想说的是,有没有一种方法可以让android设备选择HDPI artwork而不是MDPI,即使MDPI artwork已经存在?

Kindle Fire是1024x600,160 dpi,对吗

您可以尝试使用该分辨率的新资源。并将它们放在MDPI文件夹中。 在/res目录下添加大布局,并将布局文件复制到那里。 这样,在KindleFire中,您可以使用指向MDPI文件夹中更大资源的大布局

并确保您始终使用九个补丁可提取资源


希望这对您有所帮助。

在此期间使用了黑客解决方案,但我遇到了以下问题:

几乎只需要将我的hdpi图像移动到nodpi文件夹中(以避免缩放问题),并稍微更改名称(我在名称中添加了一个_hd)。之后,我制作了一个图像加载器,它接收我想要的图像的名称,如果设备是hdpi或kindle fire,则返回高清图像:

id = ctx.getResources().getIdentifier(string + "_hd", "drawable", context.getPackageName());

注意:文档不鼓励使用getIdentifier(),因为它比仅使用资源地址效率低,但我查看了加载时间,使用getIdentifier加载1000个图像需要0.25秒,这对我来说很好,尤其是因为我没有加载接近这么多图像的任何地方。

您可以尝试使用该分辨率的新资源,并将它们放在
MDPI
文件夹中。在
/res
目录中添加
layout large
,并将布局文件复制到那里。这样,使用Kindle Fire时,您可以使用
layout large
的布局,指向
MDPI
文件夹中更大的资源。

谢谢您的回复。不幸的是,我的很多作品都不如九幅补丁图像好,所以我的MDPI图像在480x320屏幕上看起来很好,HDPI图像在~800x480图像上看起来很好,如果我能将其加载到Kindle上,效果也不会太差,但这意味着要么找到一种方法将kindle重定向到HDPI文件夹,要么像我上面所说的那样将我的作品复制到MDPI文件夹中,但这会增加我的apk的大小,这是我希望避免的。无论如何,这不是个坏主意,但我想试试别的东西…>KindleFire是1024x600,160 dpi,对吗?不,它的600x1024(:D)具有169 DPI