毕加索在不同屏幕上调整大小
Picasso resize on different screens
我正在从服务器下载图片,但图片不一样(它们的分辨率),所以我想通过 error() 方法将它们硬化为图片(它是 50x50 像素)。但是当我测试这段代码时
Picasso.with(context)
.load(url)
.error(R.drawable.non_pic)
.resize(100, 100)
.into(holder.user_icon);
我注意到,在我的魅族 Pro 6 (diag = 5.2, PPI = 424, 1920x1080) 和模拟器上,基于 Nexus 4 (diag = 4.7, 1280×768) 调整大小后图像大小不同().在魅族上图片非常小,但在模拟器上它与来自 error() 的图片大小相同(这对我来说很奇怪,因为 non_pic 是 50x50 像素分辨率的 png 文件)。
那么,如何获得具有相同 non_pic 参数的硬集图像大小?
这是因为您使用像素作为度量单位。
尝试使用 Dp/Dpi 代替。这是一种将 px 转换为 DP
的方法
public static float convertPixelsToDp(float px, Context context){
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float dp = px / ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT);
return dp;
}
有关 px 和 dp 的更多信息,请参阅 here
我正在从服务器下载图片,但图片不一样(它们的分辨率),所以我想通过 error() 方法将它们硬化为图片(它是 50x50 像素)。但是当我测试这段代码时
Picasso.with(context)
.load(url)
.error(R.drawable.non_pic)
.resize(100, 100)
.into(holder.user_icon);
我注意到,在我的魅族 Pro 6 (diag = 5.2, PPI = 424, 1920x1080) 和模拟器上,基于 Nexus 4 (diag = 4.7, 1280×768) 调整大小后图像大小不同().在魅族上图片非常小,但在模拟器上它与来自 error() 的图片大小相同(这对我来说很奇怪,因为 non_pic 是 50x50 像素分辨率的 png 文件)。 那么,如何获得具有相同 non_pic 参数的硬集图像大小?
这是因为您使用像素作为度量单位。 尝试使用 Dp/Dpi 代替。这是一种将 px 转换为 DP
的方法public static float convertPixelsToDp(float px, Context context){
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float dp = px / ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT);
return dp;
}
有关 px 和 dp 的更多信息,请参阅 here