Codename一个以较低分辨率运行的应用(Android)

问题描述 投票:1回答:1

我正在Samsung Galaxy Tab A 10.1(2019)上测试我的应用程序(调试版本)。设备分辨率为1200 x1920。但是,当我使用getDisplayWidth()和getDisplayHeight()时,我得到900 x 1359(= 1440-状态栏)。因此,该应用程序以较低的分辨率运行,实际上图形看起来有点粗糙。但是,当我制作屏幕截图时,它的分辨率为1200 x1920。GalaxyTab A无法更改屏幕分辨率,因此我找不到解决此问题的方法。

这是一个已知问题,有解决方案吗?

编辑:临时解决方案是更改(已知应用程序的)程序包名称。使用NativeLogsReader.cn1lib我们得到

1),带有原始包名称:

--------- beginning of main
05-17 13:09:35.879 24347 24347 D ViewRootImpl@34e19e6[MainStub]: Relayout returned: 
old=[0,0][1200,1920] new=[0,0][900,1440] result=0x7 surface={true 3890690048} changed=true

2)包名称已更改:

--------- beginning of main
05-17 13:22:46.459 26231 26231 D ViewRootImpl@34e19e6[MainStub]: Relayout returned: 
old=[0,0][1200,1920] new=[0,0][1200,1920] result=0x7 surface={true 3890690048} changed=true

因此,对于原始程序包名称,分辨率为reduced,对于更改的程序包名称,分辨率保持原始。我在这个问题上进行了搜索,没有找到其他示例或线索。

android codenameone resolution samsung-galaxy
1个回答
0
投票

如果设备测试仪正常工作,我猜想负载分辨率是一种虚假的兼容性(很多设备都这样做),然后发送屏幕尺寸更改事件以对此进行更新。您可以在表单中添加屏幕大小事件监听器,以监视大小更改事件,或者在需要时仅动态调用getDisplayWidth()

通常,最佳做法是在此处进行防御性编程,并且如果显示宽度与上一次使用的显示宽度不同,则使用代码来动态重新创建元素。

© www.soinside.com 2019 - 2024. All rights reserved.