为什么Nexus 6密度为560 dpi?

时间:2015-02-12 12:32:29

标签: android dpi screen-density

如何为Nexus 6准备资源?如果我将图像放到xxxhdpi,它们将缩小并降低质量。我把图像放到xxhdpi它们会扩大并失去质量。 如果实际密度493ppi更接近xxhdpi~480dpi,开发人员为什么决定密度设置值为560dpi?

  

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

     

Nexus 6的量化密度为560 dpi,介于两者之间   xxhdpi和xxxhdpi主密度桶。

     

对于Nexus 6,该平台将缩小xxxhdpi资产,但是如果   那些不可用,那么它将扩大xxhdpi资产。

xxhdpi ~480dpi
xxxhdpi ~640dpi

3 个答案:

答案 0 :(得分:7)

对于Nexus 6,制造商选择量化密度为560(adb shell getprop ro.sf.lcd_density),即使物理密度约为493(getResources()。getDisplayMetrics()。toString() )。了解他们为什么这样做需要了解量化密度的含义以及它如何影响图像资源渲染,这可以解释为here

简而言之,量化密度为560意味着用于加载/渲染图像的比例因子将为3.5。用D. Hackborn的话来说,'密度......是一个抽象的密度桶,设备制造商决定让他们的UI在中运行是有意义的。这用于评估“dp”单位之类的内容,并从资源中选择和缩放位图。'

答案 1 :(得分:6)

您可以使用drawable-560dpi获得560 dpi。 drawable-560dpidrawable-xxxhdpi图片的分辨率相同。

答案 2 :(得分:1)

我认为这是一个有效的问题。有些设备介于支持的dpis(xxhdpi& xxxhdpi)之间,使用图像会进行不必要的软件缩放。我不担心质量差异,但会影响应用程序的启动性能。 在BitmapFatory中检查变量willscale,如果这是真的,平台将进行不必要的额外软件缩放。理想情况下,硬件ui应该使用openGL ES直接扩展它。