我无法处理非标准分辨率



我有我的项目的设计。它适用于分辨率为1440px x 2560px和493 ppi的Nexus 6。我的设计-1440px x 2560px。

我知道:

ldpi    120 dpi
mdpi    160 dpi
tvdpi   213 dpi
hdpi    240 dpi
xhdpi   320 dpi
xxhdpi  480 dpi
xxxhdpi 640 dpi

我有-493 ppi。这是什么?我有一个按钮大小100x50像素的设计。需要多少dpi按钮才能在设计中看起来一样好?

希望这有帮助:让你的应用程序为Nexus 6和Nexus 9 做好准备

Nexus 6

屏幕

Nexus 6拥有令人印象深刻的5.96英寸四高清屏幕显示屏分辨率为2560 x 1440(493 ppi)。这相当于~730 x 410 dp(与密度无关的像素)。

检查您的资产

它的量化密度为560 dpi,介于xxhdpi和xxxhdpi主密度桶。对于Nexus 6平台将缩减xxxhdpi资产,但如果不是这样的话如果可用,那么它将扩大xxhdpi资产的规模。

编辑:

考虑这条线路

2560 x 1440(493 ppi)。这相当于~730 x 410 dp(密度独立像素)

这意味着缩放因子为2560/730=1440/410 ~ 3.5

对于宽度为410、高度为730(以dp为单位)的屏幕,如果您想指定屏幕宽度为dp一半的按钮,则宽度应为410/2=205 dp,即717px=205*3.5(以dp*为单位的宽度*比例因子)

大小为100px x 50px的按钮在410 x 730 dp的屏幕上会转换为28 x14 dp(100/3.5*50/3.5)。

如果您真的关心正确的显示分辨率(听起来像是这样),那么您应该永远不要依赖通用文件夹。这些文件夹用于通用目的,而不是用于自定义或高价值显示。

您应该使用displayMetrics来测量屏幕大小并选择适当的资产,甚至可以进行自定义的图像缩放。这组属性有很多资源,但从本质上讲,它允许您解决所面临的问题:为高度定制的显示器设置适当的边距、填充、分辨率、布局等。

以下是文档:http://developer.android.com/reference/android/util/DisplayMetrics.html

然后是一些获取度量的"简单"实现:如何在应用程序类中获得屏幕显示指标

在android中以编程方式获取屏幕密度?

最新更新