我知道关于这方面的讨论随处可见,我自己也使用过这些文件夹,但在阅读之后我最近对于如何在可绘制文件夹中排列图像感到很困惑 -
查看此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
让我们考虑两款关于横向模式 -
的手机Nexus 10 - 2560 px * 1600px xhdpi
Nexus 5 - 1920px * 1080px xxhdpi
对于Nexus 10 - 图像尺寸为1600px(高度) 在Nexus 5的情况下 - 图像大小将是1080px
Nexus 10所需的图像尺寸将大于Nexus 5所需的图像尺寸,但nexus 10将从xhdpi文件夹中获取图像(较小的图像尺寸),因为它是xhdpi 和nexus 5将从xxhdpi文件夹中获取图像。
那我该如何解决这个问题呢?我有很多类似的布局,我面临着类似的问题。
答案 0 :(得分:2)
drawable-hdpi
,drawable-xhdpi
,drawable-xxhdpi
等仅指定dpi维度,并且所有大小的设备都将从同一文件夹获取资源,只要它们具有相同的dpi即可规格。要添加屏幕尺寸标注,您可以添加large
(对于设备7和#34;及周围),xlarge
(对于设备10和#34;以及周围)等。例如,您可以drawable-xlarge-xhdpi
强制使用Nexus 10&#34;从此文件夹中获取特定资源。或者你可以只有drawable-xlarge
这样的所有10&#34;无论dpi是什么,设备都会从此文件夹中提取资源。
基本上,one-catch-all是drawable
文件夹,您可以根据drawable-*-*-etc
的值逐个覆盖。文件夹。
答案 1 :(得分:1)
检查&#34;屏幕尺寸&#34;下的部件:
http://developer.android.com/guide/topics/resources/providing-resources.html
您可以(或者更确切地说)为不同的屏幕尺寸创建不同的布局。电话和平板电脑的处理方式不同。
Nexus 5具有更高的DPI。 1080px on 5&#34; VS 1600px on 10&#34; ...因此,Nexus 5使用xxhdpi资源(此处为:image!)和Nexus 10为xhdpi是正确的。 (xhdpi不比xxhdpi更大&#34;它只是&#34;每英寸的像素更少)。
手机和平板电脑的布局与屏幕的DPI不同。