【问题标题】:Provide images for all screens?为所有屏幕提供图像?
【发布时间】:2012-07-10 16:12:20
【问题描述】:

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

320x480 400x800 400x852 540x960 720x1280

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

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

【问题讨论】:

    标签: android android-layout screen-size


    【解决方案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)或者如果您没有图像,那么它应该默认为 /res/ 下的基本 /drawable/ 文件夹

    【讨论】:

      【解决方案2】:

      我会陈述另一个我非常喜欢的 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*30dp ImageView 的图像具有完美的分辨率。这就是我对开发人员来说不那么花哨的“设计师的事情”的方式。

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

      【讨论】:

      • 您只为所有分辨率提供了一张图片,并且缩小后的图片质量还可以吗?
      • 我更新了我的评论并提供了完整的概述细节。
      【解决方案3】:

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

      查看android官方documention

      谢谢。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-02
        • 1970-01-01
        • 1970-01-01
        • 2017-06-29
        • 1970-01-01
        • 2016-09-09
        • 1970-01-01
        相关资源
        最近更新 更多