我正在尝试设计一个应用程序,它重现标准应用程序快捷方式主屏幕图标的快捷方式样式,但作为小部件。请注意,这目前只是查看标准的 Android 主屏幕。
我使用 Eclipse 的 DDMS -> Devices 视图中的“Dump View Hierarchy for UI Automator”工具进行了以下观察:
1 x 1 正方形中给出的空间会根据屏幕密度、方向以及手机主屏幕是处于“手机模式”还是“平板电脑模式”而变化(启动 4.x 模拟器,您可以通过背景来判断) )。屏幕密度会按预期影响尺寸(0.75、1、1.5、2.0 密度因子缩放),但方向和“主屏幕模式”非常难以预测。具体来说:
主屏幕上 1x1“正方形”的尺寸
电话模式:
- 纵向:80dp x 100dp = 4:5 纵横比
- 横向(如果可用 - 未经彻底测试):106dp x 74dp = 53:37 纵横比
平板模式:
- 纵向:96dp x 96dp = 1:1 纵横比
- 横向:96dp x 96dp = 1:1 纵横比
如您所见,几乎没有任何一致性,但这些是主屏幕上“正方形”的尺寸。当查看实际分配给小部件的空间时,情况会变得更糟(是的,它确实不同于系统快捷方式小部件可用和使用的方形空间):
尺寸赋予 1x1“正方形”中的小部件
电话模式:
- 纵向:80dp x 100dp = 4:5 纵横比
- 横向(如果可用 - 未经彻底测试):90dp x 58dp = 45:29 纵横比
平板模式:
- 纵向:72dp x 72dp = 1:1 纵横比
- 横向:72dp x 72dp = 1:1 纵横比
所以我坚持:
- 手机和平板电脑模式之间的纵横比不一致
- 在某些情况下,为应用程序小部件提供的区域比应用程序快捷方式的区域更小。因此,小部件的相对大小和感知大小在平板电脑和手机上看起来会非常不同?
- 较小的区域甚至没有垂直居中,它们大多与 2dp 上边距对齐,这意味着它们甚至看起来与相邻的应用程序快捷方式不对齐,更不用说尝试通过小部件
为了可视化,下图显示了默认的系统快捷方式(周围有一个红色框,显示“方形尺寸 - 系统快捷方式和小部件始终共享)。旁边是我的小部件,蓝色突出显示了MATCH_PARENT
设置的边界,因此小部件实际上可以在其“正方形”内绘制:
电话 - 端口:
平板电脑 - 土地:
平板电脑 - 端口:
从这里最重要的是,平板电脑上小部件的蓝色区域甚至不包括系统快捷方式绘制其文本的空间吗?
有没有人有见解:
- 为什么主屏幕如此不一致?
- 为什么应用程序小部件没有与系统快捷方式相同的绘图空间/或者应该是,我做错了什么?
- 我应该做其他事情,还是只是接受对于占用其所有给定绘图空间的 1x1 小部件,它在平板电脑上看起来比在手机上看起来“更小”(与其周围环境相比)?