0

一段时间以来,我一直在开发一个创建拼图拼图的应用程序。我已经到了测试各种尺寸和密度屏幕的地步。使用 Krita,我将平铺图像缩小到 110 X 110 像素以用于 mdpi 格式。奇怪的是,这个尺寸在我迄今为止一直用来测试的 xhdpi 模拟器中工作得很好,但是我创建的 mdpi 模拟器会显着缩小图像。虽然我可以为较小的屏幕密度创建较大的图像,但它违背了我对 android 如何处理文档中的密度的理解。这些图像不应该在较低分辨率下被放大吗?这是布局文件的网格布局部分:

    <GridLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="3"
    android:rowCount="3"
    android:id="@+id/TheGrid"
    android:layout_centerInParent="true"
    android:background="@color/background_floating_material_light"
    android:animateLayoutChanges="true"
    android:layout_toRightOf="@+id/title_inflater"
    android:layout_toLeftOf="@+id/picture_inflator"
    >

    <ImageView
        android:id="@+id/TopLeft"
        android:clickable="true"
        android:layout_column="0"
        android:layout_row="0"
        android:layout_gravity="fill"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />
    <ImageView
        android:id="@+id/TopCenter"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="0"
        android:layout_column="1"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />
    <ImageView
        android:id="@+id/TopRight"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="0"
        android:layout_column="2"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />


    <ImageView
        android:id="@+id/CenterLeft"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="1"
        android:layout_column="0"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />

    <ImageView
        android:id="@+id/CenterCenter"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="1"
        android:layout_column="1"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />
    <ImageView
        android:id="@+id/CenterRight"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="1"
        android:layout_column="2"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />

    <ImageView
        android:id="@+id/BottomLeft"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="2"
        android:layout_column="0"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />
    <ImageView
        android:id="@+id/BottomCenter"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="2"
        android:layout_column="1"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />
    <ImageView
        android:id="@+id/BottomRight"
        android:clickable="true"
        android:layout_gravity="fill"
        android:layout_row="2"
        android:layout_column="2"
        android:src="@drawable/star_trek_federation_emblem_9pc_1"
        />

    <ImageView
        android:id="@+id/mover"
        android:layout_row="2"
        android:layout_column="2"
        android:visibility="invisible"
        android:layout_gravity="fill"
        />
</GridLayout>

这是它在预览器中的样子(它在 xhdpi 屏幕上的样子):

在此处输入图像描述

然而在 mdpi 屏幕中,它看起来像:

在此处输入图像描述

在我只是盲目地调整图像之前,我想知道为什么会发生这种情况,但是在创建各种模拟器和搜索网络的大部分时间之后,我被卡住了。非常感激任何的帮助。

4

1 回答 1

1

1)第一种方法,您可以从此链接创建所有尺寸的图像 https://romannurik.github.io/AndroidAssetStudio/只需将图像上传到此站点,您将获得所有可绘制的所有尺寸图像。它可以帮助您调整所有尺寸。

或者如果你不喜欢第一种方式,你可以使用

这种第二种方法 要为不同的密度创建图标,您应该遵循四种主要密度(分别为中、高、x-high 和 xx-high)之间的 2:3:4:6 缩放比例。

例如,考虑将启动器图标的大小指定为 48x48 dp。

这意味着基线 (MDPI) 资源为 48x48 像素,

并且高密度 (HDPI) 资产应该是基线 72x72 像素的 1.5 倍,

并且 x 高密度 (XHDPI) 资源应该是 96x96 像素的基线的 2 倍,依此类推。

注意:Android 还支持资产大小为 36x36 像素的低密度 (LDPI) 屏幕,但您通常不需要创建此大小的自定义资产,因为 Android 会有效地将 HDPI 资产缩小 1/2 以匹配预期大小.

同样对于 XXHDPI 资产大小应为 144x144 像素。

来源:developer.android.com

于 2015-12-24T07:56:12.507 回答