如何在不同的可绘制文件夹中排列图像?
How to arrange images in different drawable folders?
我知道关于这个的讨论随处可见,我自己也使用过这些文件夹,但在阅读它们之后,我最近对如何在可绘制文件夹中排列图像感到很困惑 -
看看这个 XML 文件 -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/wallpaper_chapter_selection"
tools:context="com.greenloop.joindotsandpaint.ChapterSelection">
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@drawable/img2"
android:padding="20dp" />
<RelativeLayout
让我们考虑 2 部手机横向模式 -
Nexus 10 - 2560 像素 * 1600 像素 xhdpi
Nexus 5 - 1920px * 1080px xxhdpi
如果是 Nexus 10 - 图片大小将为 1600 像素(高度)
对于 Nexus 5 - 图片大小为 1080px
Nexus 10 所需的图像尺寸将大于 Nexus 5 所需的图像尺寸,但 nexus 10 将从 xhdpi 文件夹(较小的图像尺寸)获取图像,因为它是 xhdpi
nexus 5 将从 xxhdpi 文件夹中获取图像。
那么我应该如何解决这个问题。我有很多类似的布局,但我遇到了类似的问题。
检查"Screen size"下的部分:
http://developer.android.com/guide/topics/resources/providing-resources.html
您可以(或者更确切地说需要)为不同的屏幕尺寸创建不同的布局。手机和平板电脑的处理方式不同。
Nexus 5 的 DPI 更高。 5" 上的 1080px VS 10" 上的 1600px... 所以 Nexus 5 使用 xxhdpi 资源(此处:图像!)和 Nexus 10 使用 xhdpi 是正确的。 (xhdpi 不是 "bigger" 而是 xxhdpi,它只是 "has less" 每英寸像素)。
手机和平板电脑的布局与屏幕的 DPI 有所不同。
drawable-hdpi
、drawable-xhdpi
、drawable-xxhdpi
等仅指定dpi尺寸,所有尺寸的设备都将从同一文件夹中获取资源,只要它们具有相同的 dpi 规格。要添加屏幕尺寸尺寸,您可以添加 large
(适用于 7" 及左右的设备)、xlarge
(适用于 10" 及左右的设备)等。例如,您可以使用 drawable-xlarge-xhdpi
强制 Nexus 10" 从该文件夹中获取特定资源。或者您可以只使用 drawable-xlarge
,这样所有 10" 设备都将从该文件夹中获取资源文件夹,无论它们的 dpi 是多少。
基本上,包罗万象的是 drawable
文件夹,您可以根据具体情况使用 drawable-*-*-etc
中的值进行覆盖。文件夹。
我知道关于这个的讨论随处可见,我自己也使用过这些文件夹,但在阅读它们之后,我最近对如何在可绘制文件夹中排列图像感到很困惑 -
看看这个 XML 文件 -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/wallpaper_chapter_selection"
tools:context="com.greenloop.joindotsandpaint.ChapterSelection">
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@drawable/img2"
android:padding="20dp" />
<RelativeLayout
让我们考虑 2 部手机横向模式 -
Nexus 10 - 2560 像素 * 1600 像素 xhdpi
Nexus 5 - 1920px * 1080px xxhdpi
如果是 Nexus 10 - 图片大小将为 1600 像素(高度) 对于 Nexus 5 - 图片大小为 1080px
Nexus 10 所需的图像尺寸将大于 Nexus 5 所需的图像尺寸,但 nexus 10 将从 xhdpi 文件夹(较小的图像尺寸)获取图像,因为它是 xhdpi nexus 5 将从 xxhdpi 文件夹中获取图像。
那么我应该如何解决这个问题。我有很多类似的布局,但我遇到了类似的问题。
检查"Screen size"下的部分:
http://developer.android.com/guide/topics/resources/providing-resources.html
您可以(或者更确切地说需要)为不同的屏幕尺寸创建不同的布局。手机和平板电脑的处理方式不同。
Nexus 5 的 DPI 更高。 5" 上的 1080px VS 10" 上的 1600px... 所以 Nexus 5 使用 xxhdpi 资源(此处:图像!)和 Nexus 10 使用 xhdpi 是正确的。 (xhdpi 不是 "bigger" 而是 xxhdpi,它只是 "has less" 每英寸像素)。
手机和平板电脑的布局与屏幕的 DPI 有所不同。
drawable-hdpi
、drawable-xhdpi
、drawable-xxhdpi
等仅指定dpi尺寸,所有尺寸的设备都将从同一文件夹中获取资源,只要它们具有相同的 dpi 规格。要添加屏幕尺寸尺寸,您可以添加 large
(适用于 7" 及左右的设备)、xlarge
(适用于 10" 及左右的设备)等。例如,您可以使用 drawable-xlarge-xhdpi
强制 Nexus 10" 从该文件夹中获取特定资源。或者您可以只使用 drawable-xlarge
,这样所有 10" 设备都将从该文件夹中获取资源文件夹,无论它们的 dpi 是多少。
基本上,包罗万象的是 drawable
文件夹,您可以根据具体情况使用 drawable-*-*-etc
中的值进行覆盖。文件夹。