1

我想针对所有屏幕尺寸优化我的应用程序。现在我想知道我是否真的必须将它们全部放入一个 apk 中。这些是我想要支持的屏幕尺寸:

320x480 400x800 400x852 540x960 720x1280

我认为具有 240x320 分辨率的设备太少了,以至于支持它们的努力也太高了。所以我的问题是,我是否必须在每个密度文件夹中放入所有图像?

另一个问题:我想提供我的应用程序从 2.1 开始,但是 2.1 不支持 xhdpi 屏幕,例如 720x1280,分别 2.1 无法与这些大图像相处。

4

3 回答 3

1

我会从我非常喜欢的 android 开发策略中陈述另一个解决方案。

另一种方法是从具有最大屏幕尺寸的设备开始,然后按比例缩小并找出您需要在较小屏幕上做出的 UI 折衷。

来自http://developer.android.com/guide/practices/screens_support.html

因此,请创建一个drawable包含为最大密度设计的图像的文件夹。目前是 10 英寸平板电脑并按比例缩小。

优点:不需要设计技能来创建一些漂亮的图像,并且您的应用程序(可能)较小。

缺点:为了缩小它并在每个图像的 dps 上更加小心,需要进行更多编码。

编辑评论:

是的。我会向您简要介绍我正在做的事情。

1)首先创建一个drawable文件夹,不需要创建另一个(虽然总是有例外)。2)正如我所提到的,所有图像都应该是根据您要支持的屏幕(可能是 10 英寸超高密度平板电脑)的最高分辨率。3)这是棘手的部分,我倾向于在 X*X 尺寸或 2X*X 尺寸(4X*X,8X*X ...)中创建所有可绘制对象,以便比例准确(除2)尽可能。

然后,在代码中。假设我们有一个 72x72 像素的图像,我们想为我们的应用程序制作一个小的导航图标。这对于 10 英寸平板电脑来说几乎是正确的,但对于 3.2 英寸手机来说却非常大。所以我在布局中创建 ImageView,如下所示:

<ImageView
        android:id="@+id/previousPage"
        android:layout_width="@dimen/small_icon"
        android:layout_height="@dimen/small_icon"
        android:src="@drawable/prev"
        android:layout_marginRight="10dp" /> //...etc

如您所见,我使用特定的宽度和高度,而不是包装内容,因此像这样具有 72x72 像素到30dp*30dpImageView 的图像具有完美的分辨率。这就是我对开发人员来说不那么花哨的“设计师的事情”的方式。

如果您想要每个版本的不同尺寸或类似的东西,您还可以创建不同的values文件夹。

于 2012-07-10T17:00:50.853 回答
1

这解释了如何优雅地处理多个 DPI:http: //developer.android.com/training/basics/supporting-devices/screens.html

本质上,每个 DPI 都有不同的目录:

MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png

如果 API(在您的示例中为 xhpdi)不支持它,或者如果您没有图像,那么它应该默认为下的基本/drawable/文件夹/res/

于 2012-07-10T16:18:11.530 回答
0

不同屏幕尺寸的手机需要不同的文件夹,如 mdp、ldp、hdp、

查看android官方文档

谢谢。

于 2012-07-10T16:16:35.330 回答