我有一个用于5.96英寸设备的仿真器。该设备从文件夹values-sw320dp
而不是文件夹values-sw480dp
获取尺寸
但是,文档显示480dp:约5英寸(480x800 mdpi)的大手机屏幕。
有人可以描述为什么会发生
答案 0 :(得分:1)
设备的最小宽度考虑了屏幕装饰和系统用户界面。例如,如果设备在屏幕上有一些持久性UI元素,这些元素占沿最小宽度轴的空间,则系统会声明最小宽度小于实际屏幕尺寸,因为这些不是屏幕像素适用于您的用户界面。 Docs
OP仿真器设备的事实:
尺寸: 5.96英寸;
分辨率 480x800
像素密度 mdpi
像素密度是屏幕物理区域内的像素数,称为dpi(每英寸点数)。这与分辨率(屏幕上的像素总数)不同。
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。
答案 1 :(得分:0)
之所以会发生这种情况,是因为通常与实际屏幕尺寸无关,而与屏幕像素密度有关。
px = dp * (dpi / 160)
https://developer.android.com/training/multiscreen/screendensities