我想针对所有屏幕尺寸优化我的应用程序。现在我想知道我是否真的必须把它全部放到一个apk中。 这些是我想要支持的屏幕尺寸:
小320x480 400x800 400x852 540x960 720x1280
我认为很少有具有240x320分辨率的设备能够高效地支持它们。所以我的问题是,我是否必须在每个密度文件夹中放入所有图像?
另一个问题:我想从2.1提供我的应用程序,但2.1不支持xhdpi屏幕,例如720x1280,分别为2.1不能与这些大图像相处。
答案 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)