适用于大屏幕的Android可绘制资源文件夹

5

我在drawable-hdpi中有大尺寸的图片,在drawable-mdpi中有小尺寸的图片。

当我在Kindle Fire上打开我的应用程序(其从layout-large获取布局),它使用了来自drawable-mdpi的图片。是否有任何方法使应用程序在屏幕大小为大型时从drawable-hdpi获取图片?

谢谢

3个回答

12

我认为你需要使用配置限定符

看起来你对这些文件夹的作用有些误解。你的Android设备会根据屏幕大小或像素密度选择相应的文件夹。

你的Kindle Fire具有中等像素密度和大屏幕。因此,它会从具有这些特定限定符的res文件夹中选择资源。

例如,选择 res/layout-large/my_layout.xml 中的布局文件以及图像。

res/drawable-mdpi/my_icon.png

你不能告诉你的Kindle从hdpi文件夹中获取图像,因为它没有高像素密度。

因此,你可以创建一个名为

res/drawable-large-mdpi/ 

专门为您的Kindle Fire设备而设计。

或者只需确保正确的图像放置在正确的文件夹中。

编辑:从3.2开始,尺寸限定符已被弃用。

虽然已经被弃用,但它们仍然可用。尽管结果可能不如预期(例如:5"和7"被视为相同大小-大号-但仍有差异)。因此,在3.2以后添加了dp限定符来使用。这是更好的选择。 developer.android.com/guide/practices/… 它有点像媒体查询


2
你可以创建一个名为drawable-large的文件夹,根据屏幕大小获取图片,或者根据大屏幕和中等像素密度(如kindle fire)创建drawable-large-mdpi。但这是不好的做法,因为应该根据屏幕密度来加载图片。 - Timmetje
1
要找出您的设备喜欢哪个文件夹,请使用名为“ScreenInfo”的应用程序,它会显示您的设备的DPI和屏幕类别。 - Someone Somewhere
1
大小限定符在3.2及以上版本中已被弃用。res/drawable-large-mdpi是否免除此限制,或者您有其他版本的替代方案? - sturrockad
虽然已经被弃用,但它们仍然可以使用。尽管结果可能不如预期(例如:5"和7"被视为相同大小-大号-但实际上有差异)。因此,在3.2之后,他们添加了dp限定符来使用,这些限定符要好得多。http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts 它的工作方式有点像媒体查询。 - Timmetje
这只在布局文档中提到,但我相信它指的是那些限定符在整个Android中已经被弃用了。更多相关主题请参见:https://dev59.com/wGbWa4cB1Zd3GeqPV1pb - sturrockad
显示剩余2条评论

4

使用最新的Android多布局和多分辨率支持方法,已经废弃了在3.2或以上版本中使用drawable-large等尺寸限定符。

您可以使用以下代码来支持多个布局和密度:

res/drawable-sw600dp-mdpi

在此示例中,sw600dp表示以密度无关像素为单位的活动可用的最小宽度,在本例中为600dp。这被认为比使用类似于large这样的通用大小分组更适合设备特定的布局和可绘制对象。

还有一些新的可用宽度和高度选项,完整信息请参见:支持多个屏幕


3

我必须将drawable-hdpi更改为drawable-large-hdpi吗?它不起作用。 - Bera
2
不要将其更改为drawable-large-mdpi,因为您的Kindle Fire具有大屏幕和中等密度。(它没有高密度,因此不会从hdpi限定符中获取它。) - Timmetje

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接