5英寸设备从sw320dp而非sw480dp获取尺寸

时间:2018-10-10 12:39:34

标签: android user-interface

我有一个用于5.96英寸设备的仿真器。该设备从文件夹values-sw320dp而不是文件夹values-sw480dp获取尺寸 但是,文档显示480dp:约5英寸(480x800 mdpi)的大手机屏幕。 有人可以描述为什么会发生

2 个答案:

答案 0 :(得分:1)

  

设备的最小宽度考虑了屏幕装饰和系统用户界面。例如,如果设备在屏幕上有一些持久性UI元素,这些元素占沿最小宽度轴的空间,则系统会声明最小宽度小于实际屏幕尺寸,因为这些不是屏幕像素适用于您的用户界面。   Docs

OP仿真器设备的事实:

  • 尺寸: 5.96英寸;

  • 分辨率 480x800

  • 像素密度 mdpi

enter image description here

  

像素密度是屏幕物理区域内的像素数,称为dpi(每英寸点数)。这与分辨率(屏幕上的像素总数)不同。   enter image description here   DisplayMetrics.density字段指定根据当前像素密度将dp单位转换为像素所必须使用的比例因子。在中等密度的屏幕上,DisplayMetrics.density等于1.0;在高密度屏幕上,它等于1.5;在超高密度屏幕上,它等于2.0;在低密度屏幕上,它等于0.75。该数字是您应乘以dp单位以获得当前屏幕的实际像素数的因素。

https://developer.android.com/guide/practices/screens_support https://developer.android.com/training/multiscreen/screendensities

解决方案:从values-sw480dp中选择: 编辑“像素”配置,将其增加到720x1200 hdpi。

enter image description here

答案 1 :(得分:0)

之所以会发生这种情况,是因为通常与实际屏幕尺寸无关,而与屏幕像素密度有关。

px = dp * (dpi / 160)

https://developer.android.com/training/multiscreen/screendensities