目前在Android开发中,开始专门为Android平板电脑开发新版本是很常见的。 (通常它不是平板电脑的额外布局,而是全新的应用程序,因为管理片段的逻辑与手机版本开始使用的逻辑完全不同。)
在外部团队中,我们在res/values
文件夹中包含Android资源值,特别是dimens.xml
中的维度定义
当这个平板电脑版本必须在手机上工作时,问题就出现了。
Android假设将替代资源放入,例如values-small
,values-normal
,values-large
,values-xlarge
请参阅Providing Resources article,例如本地sdk/docs/guide/topics/resources/providing-resources.html
首先,在文档中没有明确说明,但我认为其内部是values
实际values-normal
,即默认屏幕大小的默认值(默认密度)(即手机)
这个建议是对的吗?
然后,不将所有values
移动到values-xlarge
(因为它们实际上是在设计时考虑到平板电脑),如何重新定义(或“覆盖”){{1}内特定维度的值}?
我无法移动,因为有很多文件,有些正在开发中。
来自Supporting Multiple Screens的图片,例如dimens.xml
相关的SO问题:
UPDATE-1 sdk/docs/guide/practices/screens_support.html
与values
不同,因为xlarge配置会读取放入values-normal
的值(当没有其他配置时)
答案 0 :(得分:1)
我无法移动,因为有很多文件,有些正在开发中。
正如你已经自己回答的那样,为了解决这个问题,你需要移动文件,所以你只需要咬紧牙关然后继续使用它。然后,“正在开发”的文件在准备就绪时需要放在适当的位置。
假设您正在使用像Git这样的代码管理系统,移动文件并不是什么大问题 - 例如,它们仍保留所有版本历史记录。
答案 1 :(得分:1)
首先在文档中没有明确说明,但我认为里面的值实际上是值 - 正常,默认屏幕大小的默认值是默认密度(即手机)这个建议是对吗?
没有。 res/values/
根本不符合屏幕尺寸。
然后没有将所有值移入value-xlarge(因为它们实际上是在设计时考虑到了Tablet),如何重新定义(或“覆盖”)dimens.xml中特定维度的值?
拥有res/values/
中的每个值中的一个。默认情况下,这将用于所有屏幕尺寸。
然后,在其他资源集中,例如res/values-large/
,为所选资源提供替代定义,其中在指定的屏幕尺寸或更大时需要这些替代品。
并且,您可能希望考虑切换到原始屏幕尺寸存储桶的-swNNNdp
和亲属,以获得更大的灵活性。