如何在不同的可绘制文件夹中排列图像?

时间:2015-08-15 11:12:26

标签: android android-layout android-drawable

我知道关于这方面的讨论随处可见,我自己也使用过这些文件夹,但在阅读之后我最近对于如何在可绘制文件夹中排列图像感到很困惑 -

查看此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文件夹中获取图像(较小的图像尺寸),因为它是xh​​dpi 和nexus 5将从xxhdpi文件夹中获取图像。

那我该如何解决这个问题呢?我有很多类似的布局,我面临着类似的问题。

2 个答案:

答案 0 :(得分:2)

drawable-hdpidrawable-xhdpidrawable-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不同。