我正在从服务器上下载图片,但是图片不一样(它们的分辨率),所以我想把它们变得很难用于error()方法的图片(它是50x50像素)。但是当我测试这段代码时
Picasso.with(context)
.load(url)
.error(R.drawable.non_pic)
.resize(100, 100)
.into(holder.user_icon);
我注意到,在我的魅族Pro 6(诊断= 5.2,PPI = 424,1920x1080)和仿真器上,基于Nexus 4(诊断= 4.7,1280×768),调整后的图像大小不同() 。在魅族图像非常小,但在模拟器上它与错误()的图片大小相同(这对我来说很奇怪,因为non_pic是50x50像素分辨率的png文件)。 那么,对于non_pic参数,如何获得相同的硬件图像大小?
答案 0 :(得分:0)
这是因为你使用px作为测量。 尝试使用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