密度像素到像素

时间:2014-07-19 02:59:40

标签: android

在具有android:layout_width="90dp"android:layout_height="90dp"的ImageView中,我尝试设置分辨率为200x200像素和350x350像素的图像。

分辨率为350x350像素的图像清晰,而分辨率为200x200像素的图像则不那么清晰。

有谁知道如何计算ImageView上图像的清晰度应该是什么?

这对我很重要,因为我希望我的应用中的缩略图看起来很清晰,但我也希望它们的分辨率尽可能低,因为我从服务器下载它们并且它们的尺寸应该很小。

是否有关于缩略图尺寸和全尺寸图像的建议,因为原始尺寸(如3000x4000像素)对于完整尺寸来说太过分了。

2 个答案:

答案 0 :(得分:0)

您可以使用以下方法获取屏幕密度:

float density = getResources().getDisplayMetrics().density;
if (density > 4.0f){
    //it is a xxxhdpi display
    //load a extra extra extra high resolution image (600x600px, for example)
}
else if (density > 3.0f){
    //it is a xxhdpi display
    //load a extra extra high resolution image (450x450px, for example)
}
else if (density > 2.0f){
    //it is a xhdpi display
    //load a extra high resolution image (300x300px, for example)
}
else if (density > 1.5f){
    //it is a hdpi display
    //load a high resolution image (200x200px, for example)
}
else if (density > 1.0f){
    //it is a mdpi display
    //load a medium resolution image (150x150px, for example)
}
else if (density > 0.75f){
    //it is a ldpi display
    //load a low resolution image (100x100px, for example)
}

我提出的决议只是一个例子。我把它们放在那里,这样你就可以参考图像的大小,以保持图像清晰。

答案 1 :(得分:0)

在文档的Iconography页面中对此进行了详细说明。

  

因为您将提供多种尺寸的每个图标以支持   不同的密度,下面的设计指南参考图标   以dp为单位的尺寸,它基于a的像素尺寸   中密度(MDPI)屏幕

     

因此,要创建不同密度的图标,您应该遵循    2:3:4:6:8五种主要密度之间的比例(中等,   分别为高,x高,xx高和xxx高。例如,   考虑启动器图标的大小指定为48x48   DP。这意味着基线(MDPI)资产为48x48像素,而且为高   密度(HDPI)资产应该是基线的1.5倍,为72x72像素,而且   x高密度(XHDPI)资产应为基线的2倍,为96x96像素,   等等。

简而言之,如果您想要一个 90dp x 90dp 的ImageView图像,您需要:

  • a draw> mdpi中的 90px x 90px 图像(基线,dp = px)。
  • 在drawable-hdpi中的 135px x 135px 图像。
  • 在drawable-xhdpi中的 180px x180px 图像。
  • ......等等。