【问题标题】:How to handle numerous combinations of screen sizes and densities?如何处理多种屏幕尺寸和密度的组合?
【发布时间】:2016-04-23 16:26:42
【问题描述】:

我正在努力将正确的drawables 放到正确的屏幕上。我遵循了 android 开发人员的说明,并为 ldpixxhdpi 创建了每个 drawable 的版本。但是,物理上具有相同dpi 的小屏幕和大屏幕选择相同的drawable,我希望更大的屏幕获得更大的屏幕。

布局非常简单,所以我认为我不需要创建具有不同限定符的新布局,因此我需要想出一种对drawables(和/或屏幕分辨率)进行分类的好方法。我猜它是用 sw<N>dp 限定符或其兄弟姐妹之一完成的,但我该如何选择间隔?我看过一些例子(sw600dpw820dp 等),但没有关于如何确定它们的指南。我是否需要在不同的 AVD 配置上反复试验来做到这一点,哪些是最好的?

确定要使用哪个-sw<N>dp 后,如何缩放我的drawable?我是遵循标准3:4:6:8:12:16 还是其他?

再一次,sw<N>dp 限定符似乎不适用于drawables,因为它们的缩放结果奇怪且模糊。我是否改为使用 layouts 和限定词,但是如何?我真的很茫然……

【问题讨论】:

  • 您误解了可绘制对象、布局、屏幕尺寸和分辨率如何相互作用。可绘制对象确切地在分辨率桶中,因为如果不是,您会看到“模糊”资产等。将drawables放入大小桶中绝对是错误的做法。您将需要创建不同尺寸的可绘制对象,然后创建特定尺寸的布局来选择它们。或者,您可以创建超大的可绘制对象和特定尺寸的尺寸以按比例缩小。我很少发现需要创建两个以上特定尺寸的布局(手机和平板电脑),而且我从不调整可绘制对象的大小。

标签: android android-layout android-xml android-drawable dpi


【解决方案1】:

但是,物理上具有相同 dpi 的小屏幕和大屏幕选择相同的可绘制对象,我希望更大的屏幕获得更大的屏幕。

将较小的放在res/drawable-...dpi/ 目录中,以获取不同的... 值(例如x)。将较大的放在res/drawable-swNNNdp-...dpi/ 中,用于NNN(例如800)和... 的不同值。请注意,-swNNNdp 限定符必须在名称中位于 -...dpi 限定符之前。

但是我该如何选择间隔呢?

这取决于你。你是那个说“我想要更大的屏幕来获得更大的屏幕”的人。只有你自己知道你喜欢什么,也只有你知道“更大”和“不”之间的分界线在哪里——“更大”在你的脑海中。对此没有统一的答案,就像您将网页布局更改为“移动”与否时没有统一的答案一样。

我是否需要在不同的 AVD 配置上反复试验,哪种方法最好?

我建议您在硬件上尝试一下。

如果您决定在 7 英寸及以上的平板电脑上需要更大的图像,-sw600dp 将是一个合理的选择。如果您决定在 10 英寸及以上的平板电脑上需要更大的图像,-sw720dp 将是一个合理的选择.除此之外,用尺子测量最短的屏幕宽度,然后乘以 160 得到 dpi。 Google 还维护a database of many popular devices,每个维度在pxdpi 中。

确定使用哪个 -swdp 后,如何缩放我的可绘制对象?

再一次,这取决于你。如果您决定希望图像在更大的屏幕上大 50%,请创建大 50% 的图像。再说一次,你是说“我想要更大的屏幕来获得更大的屏幕”的人。只有你知道自己喜欢什么,也只有你知道“更大”意味着什么能让你得到你喜欢的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多