为所有屏幕提供图像?

时间:2012-07-10 16:12:21

标签: android android-layout screen-size

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

小320x480 400x800 400x852 540x960 720x1280

我认为很少有具有240x320分辨率的设备能够高效地支持它们。所以我的问题是,我是否必须在每个密度文件夹中放入所有图像?

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

3 个答案:

答案 0 :(得分: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),或者如果您没有图像,那么它应该默认为{{1下的基本/drawable/文件夹}}

答案 1 :(得分: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

正如您所看到的,我使用特定的宽度和高度而不是包装内容,因此像{72} 72像素的图像到30dp*30dp ImageView具有完美的分辨率。对于开发人员来说,这是我不太喜欢的方式,“设计师事物”。

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

答案 2 :(得分:0)

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

检查Android官方documention

感谢。