毕加索在不同的屏幕上调整大小

时间:2017-09-13 22:23:30

标签: android picasso

我正在从服务器上下载图片,但是图片不一样(它们的分辨率),所以我想把它们变得很难用于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参数,如何获得相同的硬件图像大小?

1 个答案:

答案 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