gpt4 book ai didi

android - 如何在 Picasso 中为 resize() 值选择值

转载 作者:行者123 更新时间:2023-11-29 15:36:23 26 4
gpt4 key购买 nike

我添加了一个 Image View,并设置了这些值。

 <ImageView
android:id="@ivNewsHeader
android:layout_width="match_parent"
android:layout_height="250dp"
android:scaleType="centerCrop" />

我从服务器获取图像,它们是非常高分辨率的图像,如果我按原样添加它们,我最终会得到 OutOfMemoryError

所以我了解到 picasso 提供了一个很好的方法来解决这个问题。我使用了 following,这缩小了任何高于上述尺寸的图像。

Picasso.with(getApplicationContext()).load(imageURL).
resize(180, 130).
onlyScaleDown()
.into(ivNews);

现在当我选择这些 resize(180, 130) 时,性能非常好,我没有得到任何 OutOfMemoryError,但是图像质量很差.

所以我的问题是如何选择调整大小的数字,以及应该使用什么等式将正确的width-height 数字放入resize() 方法 中以获得完美的图像在不影响质量和性能的情况下。

我的 imageView 高度是 250dp 宽度是 match_parent

最佳答案

根据设备大小指定比例值

设备像素宽度

 public static int getScreenWidth() {
return Resources.getSystem().getDisplayMetrics().widthPixels;
}

将 DP 转换为像素

public static int dpToPx(int dp)
{
return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}

现在使用这两个函数

Picasso.with(getApplicationContext()).load(imageURL).
resize(getScreenWidth(), dpToPx(250)).
onlyScaleDown()
.into(ivNews);

关于android - 如何在 Picasso 中为 resize() 值选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com