【发布时间】:2020-11-24 07:14:15
【问题描述】:
我有这样的需求
对于宽度: sw0-320:100dp,
sw321-:200dp
我应该把这些值放在哪里?
在 values 文件夹中:100dp 或 200dp,
在 values-w320dp 文件夹中:100dp 或 200dp,
这里很混乱!研究了一些文档,但不明白这里的事实!
【问题讨论】:
标签: android android-studio dpi dimension screen-density
我有这样的需求
对于宽度: sw0-320:100dp,
sw321-:200dp
我应该把这些值放在哪里?
在 values 文件夹中:100dp 或 200dp,
在 values-w320dp 文件夹中:100dp 或 200dp,
这里很混乱!研究了一些文档,但不明白这里的事实!
【问题讨论】:
标签: android android-studio dpi dimension screen-density
Android 会首先为其运行的设备找到最具体的资源。
这意味着如果您在values-sw320dp 中放置了一些东西,并且您正在运行一个最小宽度为 320dp 或更大的设备,它会首先出现在此处。如果在该文件夹中找不到资源,它将在基础values 文件夹中查找。如果您正在运行最小宽度为 319dp 的设备,它不会在 values-sw320dp 中查找资源。
【讨论】:
如果设备的最小宽度或可用宽度为 320dp 或更大,将使用 values-sw320dp 或 values-w320dp 文件夹中的数据,否则将使用 values 文件夹中的数据。因此,在这种情况下,您需要将 100dp 放在 values 文件夹中,将 200dp 放在 values-sw320dp 或 values-w320dp 中。问题说要求是关于sw(最小宽度),但它使用文件夹名称中的可用宽度(w)限定符,所以不清楚你需要哪一个。
这方面的文档在 https://developer.android.com/guide/topics/resources/providing-resources 中,您可以在那里查看 smallestWidth (sw<N>dp) 和 availableWidth (w<N>dp) 限定符。
【讨论】: