【问题标题】:How to arrange images in different drawable folders?如何在不同的可绘制文件夹中排列图像?
【发布时间】:2015-08-15 11:12:26
【问题描述】:

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

看看这个 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 - 1920 像素 * 1080 像素 xxhdpi

对于 Nexus 10 - 图片尺寸为 1600 像素(高度) 在 Nexus 5 的情况下 - 图像大小将为 1080 像素

Nexus 10 所需的图像大小将大于 Nexus 5 所需的图像大小,但 Nexus 10 将从 xhdpi 文件夹中获取图像(较小的图像大小),因为它是 xhdpi nexus 5 将从 xxhdpi 文件夹中获取图像。

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

【问题讨论】:

    标签: android android-layout android-drawable


    【解决方案1】:

    drawable-hdpidrawable-xhdpidrawable-xxhdpi 等仅指定 dpi 尺寸,所有尺寸的设备只要具有相同的 dpi 规格,就会从同一文件夹获取资源。要添加屏幕尺寸维度,您可以添加large(适用于 7 英寸及左右的设备)、xlarge(适用于 10 英寸及左右的设备)等。例如,您可以使用drawable-xlarge-xhdpi 来强制 Nexus 10" 从该文件夹中获取特定资源。或者您只能拥有 drawable-xlarge,这样所有 10" 设备都会从该文件夹中提取资源,无论他们的dpi是什么。 基本上,包罗万象的是drawable 文件夹,您可以使用drawable-*-*-etc 中的值逐个覆盖。文件夹。

    【讨论】:

    • 我还看到,开发人员创建“可绘制”文件夹并将图像放入其中。你也可以把这个放在你的答案中吗?
    • 那么我应该如何真正安排图像。能否请您详细说明。我应该将相同像素但不同ppi的图像放在不同的drawable中还是应该怎么做。请详细说明一个好的解决方案!提前致谢
    • 没有适合所有情况的答案。这在很大程度上取决于您要对每个图像完成的工作。例如,如果您正在使用图像并且您的意图是保持其物理尺寸相同(例如按钮或图像按钮),那么您最好的选择是将集合放入 drawable-**dpi 文件夹。如果您的意图是让它们以不同的尺寸出现(更大的屏幕尺寸更大),您可能需要至少将它们放在 drawable + drawable-**large 文件夹中。我个人会根据具体情况做出此决定。
    • @mubeen - 我并不是要完整引用所有可能的文件夹和组合,而是试图指出机制。但是,drawable 文件夹是一个特例,我更新了我的答案以引用它。
    【解决方案2】:

    检查“屏幕尺寸”下的部分:

    http://developer.android.com/guide/topics/resources/providing-resources.html

    您可以(或者说需要)为不同的屏幕尺寸创建不同的布局。手机和平板电脑的处理方式不同。

    Nexus 5 具有更高的 DPI。 1080px on 5" VS 1600px on 10"... 所以 Nexus 5 使用 xxhdpi 资源(这里:图片!)和 Nexus 10 使用 xhdpi 是正确的。 (xhdpi 并不比 xxhdpi“大”,只是每英寸“像素少”)。

    手机和平板电脑的布局与屏幕的 DPI 不同。

    【讨论】:

    • 但是,看布局。我不需要为不同的屏幕尺寸制作不同的布局。我只想在整个屏幕上显示图像。它只能通过这种特定的布局来实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    相关资源
    最近更新 更多