我有一个图像列表需要从服务器下载并在Android应用程序中的listView中显示。它们的长宽比不同,因为我希望每个ImageView都与设备的宽度匹配,所以我不能固定它们的高度。
我也知道可以通过缩小图片来提高性能,就像Picasso使用fit()和resize()方法一样。
我正在使用Picasso进行我的项目开发。问题是,如果我不知道imageView的高度,我将无法使用Picasso的fit()和resize()方法来缩小图像。
所以我尝试了其他方法。我想知道transform是否也可以对图像进行缩小?
非常感谢。
我也知道可以通过缩小图片来提高性能,就像Picasso使用fit()和resize()方法一样。
我正在使用Picasso进行我的项目开发。问题是,如果我不知道imageView的高度,我将无法使用Picasso的fit()和resize()方法来缩小图像。
所以我尝试了其他方法。我想知道transform是否也可以对图像进行缩小?
new Transformation() {
@Override
public Bitmap transform(Bitmap source) {
int targetHeight = deviceWidth;
double aspectRatio = (double) source.getHeight() / (double) source.getWidth();
int targetWidth = (int) (targetHeight / aspectRatio);
Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false);
if (result != source) {
// Same bitmap is returned if sizes are the same
source.recycle();
}
return result;
}
@Override
public String key() {
return "transformation" + " desiredWidth";
}
非常感谢。
fit()
,它会根据容器的大小自动调整图像的尺寸。另一方面,如果你在运行时决定容器的大小,你可以调用resize(width, height)
并结合centerCrop()
或centerInside()
中的一个,具体取决于最终结果应该是什么。 - Sebastiano