1

我正在开发一个游戏。我想在屏幕上显示一张图片。它应该填满屏幕 90% 的宽度(大约 90%)。我不希望系统调整我的图像大小(我不喜欢它产生的质量)我想在不重新缩放/调整大小的情况下放置图片。

<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/myPicture"/>

这就是我希望它在不同屏幕上的显示方式: 在此处输入图像描述

在这种情况下,我有 2 种尺寸的资源图像(宽度:第一个为 720 像素,第二个和第三个为 1440 像素)。(第三个是平板电脑)我知道如果我将它们放入不同的drawables文件夹中,那会很好。
第一个:drawables-mdpi
第二个:drawables-xxdpi
第三个:drawable-mdpi-xlarge

唯一的问题:我的 apk 会比它可能的大(第二张图片是重复的,因为它的副本在不同的文件夹中)

我的问题是: 如何在不重复且易于维护的情况下完成这项工作?

我的 google-ing 的结果: 不要使用不同的可绘制文件夹,我应该像这样使用它:
/drawables/

  • myPicture_720.png
  • myPicture_1440.png

然后我可以为每种屏幕类型制作不同的layout-s,并且apk不会大很多。这样做的问题是:维护工作量太大

更简单的方法:
使用 refs.xml
http://blog.vogella.com/2013/08/13/using-xml-layout-references-in-android/
/values-mdpi-xlarge/refs.xml

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="drawable" name="myPicture">@drawable/myPicture_1440</item>
</resources>

(这是第三屏)

这样我只能有一个布局,并且将使用大小合适的可绘制资源。

唯一的问题是:
由于名称,我仍然需要维护很多。
我使用 Photoshop 插件(Cut 'n' Slice Me),它以 4 种不同大小在 4 个不同文件夹中为 4 种基本密度导出可绘制对象。

我知道这不是常规方式,我应该如何使用该系统,但是如果您知道更简单的方法,请尝试回答我的问题。

我认为它应该像这样工作:
我可以制作 2 个不同的文件夹,并且可以为整个文件夹做一个参考,以便从那个文件夹中获取可绘制的资源。(在一个文件夹中,名称将相同(myPicture.png)

注意:
在我的示例中,提到了 720px 和 1440px。在实际开发中,它不会是双倍的,因此调整大小会使它看起来更糟。

TLDR:
如果我的 drawables-xxdpi 和 drawables-mdpi-xlarge 相同,我怎样才能让系统在不复制文件夹的情况下使用好的资源?

4

0 回答 0