【问题标题】:different resources for different screen size android app不同屏幕尺寸的android应用程序的不同资源
【发布时间】:2014-04-15 22:02:16
【问题描述】:

我正在使用 eclipse 开发一个安卓应用程序。我有以下文件夹结构。

Xml 文件夹:

/res/layout
/res/layout-large
/res/layout-large-mdpi
/res/layout-mdpi
/res/layout
/res/layout-xlarge

图片文件夹:

/res/drawable
/res/drawable-hdpi
/res/drawable-ldpi
/res/drawable-mdpi
/res/drawable-xhdpi
/res/drawable-xxhdpi

我在 manifest.xml 中使用了这段代码

 <supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />

我在可绘制文件夹中有不同大小的徽标图像。但现在我所有的 layout.xml 只使用来自/res/drawable-mdpi 的图像。如何解决这个问题?

【问题讨论】:

  • 清单中的目标 SDK 版本是什么?
  • 目标SDK版本为18
  • 你是如何验证它使用 mdpi 版本的?您是在谈论全屏图像吗?你的问题不是很清楚。请添加至少两个不同的布局 xml,它们的包含文件夹和您期望的结果。
  • 你试过清理你的项目吗?

标签: android xml android-layout


【解决方案1】:

在你尝试之前检查(测试)这个!!!

这不是您问题的完美答案,但如果您的应用中的图片数量最少,这是一个机会:

Go through the developer site here :

并阅读完整的详细信息,

为了在您的应用中获得更好的结果,请考虑在上述链接中的“使用配置限定符”段落之前添加 1.2 分。

在运行时,系统通过以下过程确保在当前屏幕上尽可能地显示给定资源:

  1. 系统使用适当的替代资源 根据当前屏幕的大小和密度,系统使用应用程序中提供的任何特定于大小和密度的资源。例如,如果设备具有高密度屏幕并且应用程序请求可绘制资源,则系统会查找与设备配置最匹配的可绘制资源目录。根据其他可用的替代资源,具有 hdpi 限定符的资源目录(例如 drawable-hdpi/)可能是最佳匹配,因此系统使用该目录中的可绘制资源。

  2. 如果没有匹配的资源可用,系统使用默认资源并根据需要放大或缩小以匹配当前屏幕尺寸和密度 “默认”资源是那些没有用配置限定符标记的资源。例如drawable/中的资源就是默认的drawable资源。系统假定默认资源是为基线屏幕尺寸和密度设计的,即正常屏幕尺寸和中等密度。因此,系统会酌情为高密度屏幕放大默认密度资源,为低密度屏幕缩小默认密度资源。

    但是,当系统正在寻找特定密度的资源并且在特定密度目录中没有找到它时,它不会总是使用默认资源。系统可以改为使用其他特定于密度的资源之一,以便在缩放时提供更好的结果。例如,当寻找低密度资源并且它不可用时,系统更倾向于缩减资源的高密度版本,因为系统可以轻松地将高密度资源缩减为低密度与按 0.75 倍缩放中等密度资源相比,倍增 0.5 倍,工件更少。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多