Android 可绘制文件夹回退规则

标签 android android-layout

我想了解 Android 中的可绘制文件夹是如何工作的。我发现在我们项目中的资源文件夹中,有以下几个文件夹:

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

有人可以告诉我这些文件夹的回退机制是如何工作的吗?还有 v8 和 v11 是什么意思?

最佳答案

来自 Android doc :

The API level supported by the device. For example, v1 for API level 1 (devices with Android 1.0 or higher) and v4 for API level 4 (devices with Android 1.6 or higher). See the Android API levels document for more information about these values.

-v8-v11API version但是当 android 确定使用资源的最佳匹配时,它将使用它们作为“级别”(而不是严格的 api 版本号),例如使用您的项目文件夹结构:

  • 如果设备运行 Froyo(Android 2.2,API 8)和 mdpi 屏幕,那么将从 res/drawable-mdpi-v8 获取资源/文件夹

  • 如果设备运行 Gingerbread(Android 2.3,API 10)和 mdpi 屏幕,那么资源也将从 res/drawable-mdpi- v8/文件夹(因为8<10<11)

  • 如果设备运行带有 mdpi 屏幕的 Ice Cream Sandwich(Android 4.0,API 15),那么资源也将从 res/drawable- mdpi-v11/文件夹(因为11<15)

--

为什么默认的 res 文件夹是 v-8v-11v-15... 而不是 v- 12v-13v-16... ?

因为它是 Android 的主要版本,对 UI 机制进行了更改(例如,Api 11 是第一个针对平板电脑优化的 Android)。

关于Android 可绘制文件夹回退规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490780/

相关文章:

java - 如何将相机 View 设置为具有 View 的背景?

android - 和引擎多边形

android - 无法解析 com.android.support :design 28. 0.0

java - 来自 OAuth 的回调不调用 onResume()

android - TableLayout ScrollView 垂直和水平

android - 如何在 Android TextView 周围放置边框?

android - Android Studio 中的应用程序 - 不显示 XML 布局

Android - setVisibility 导致 java.util.ConcurrentModificationException

android - 在不注册 View 的情况下打开上下文菜单

android - 相对布局权重