在具有android:layout_width="90dp"
和android:layout_height="90dp"
的ImageView中,我尝试设置分辨率为200x200像素和350x350像素的图像。
分辨率为350x350像素的图像清晰,而分辨率为200x200像素的图像则不那么清晰。
有谁知道如何计算ImageView上图像的清晰度应该是什么?
这对我很重要,因为我希望我的应用中的缩略图看起来很清晰,但我也希望它们的分辨率尽可能低,因为我从服务器下载它们并且它们的尺寸应该很小。
是否有关于缩略图尺寸和全尺寸图像的建议,因为原始尺寸(如3000x4000像素)对于完整尺寸来说太过分了。
答案 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图像,您需要: