gpt4 book ai didi

android - 平均调整小部件的大小(仅限 xml 方法)

转载 作者:行者123 更新时间:2023-11-29 01:45:00 27 4
gpt4 key购买 nike

我有一个 UI 小部件大小问题,请参阅下面的 2 个设备作为示例,

1.) Samsung Galaxy Tab 2 7"
- Pixels : 1024x600 (mdpi)
- DPI : 160
- Density : 1.0
2.) Samsung Nexus 10 2013
- Pixels : 2560x1600 (xhdpi)
- DPI : 320
- Density : 2.0

如果我放置一个 50dp 的小部件,通过使用 px = dp (DPI/160),它将是 Tab 7"的 50pxNexus 10 的 100px。但就百分比而言,50px 等于 Tab 7 屏幕宽度的 4.88%,而 100px 等于 Nexus 10 屏幕宽度的 3.9%

但是,我需要这个小部件以相同的宽度百分比出现。所以,我想出了 2 个选项。

一个。通过获取物理像素并应用百分比在运行时进行计算,然后调整小部件的大小。

B.在不同的 xml 文件中计算大小并放置在 中(我的情况是 sw600dp 和 sw700dp)。

截至目前,我正在使用选项 A 来计算大小并在运行时进行设置。它运行良好,但恐怕计算会影响性能。如果我选择选项 B,我将需要计算每个屏幕中每个小部件的大小(Tab 7"的 50dp 和 Nexus 10 的 62.5dp 将导致两者均为 4.8%)。但是,如果我想要稍后更改此值或某些制造商推出具有不同 DPI 或像素的新设备(想象一下,具有 hdpi 分辨率、1.5 密度、240 DPI 的 7 英寸平板电脑),我将不得不重做所有计算并更新或再次提供新的 xml。

那么,我的问题是,是否有选项 C 既不会降低性能又不会在将来考虑大量手动计算?

附言抱歉,我忘了提到我已经对我的静态小部件使用权重方法,但我的问题是关于动态生成小部件的。例如,

  • 在横向平板电脑上显示 5 列的网格布局
  • 在手机上每页显示 4 行的 ScrollView
  • 具有 5% 内边距的 ImageView
  • 在每个设备上都具有宽高比的 ImageView。

最佳答案

dp 在所有设备上的大小几乎相等,而不是屏幕百分比

如果您需要相同的屏幕百分比,那么只需获取显示大小并计算所需的百分比。然后动态应用到您的小部件

关于android - 平均调整小部件的大小(仅限 xml 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21986449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com