【发布时间】:2015-02-17 13:55:14
【问题描述】:
我正在使用毕加索图书馆将图像加载到列表视图中,形成几个不同的在线资源。然而,有些图像太小,最终在将它们应用到视图时看起来很模糊。有没有办法在使用毕加索加载图像时检查图像的大小?这是我的代码:
Picasso.with(MainActivity.context)
.load(imgUrl)
.transform(new BitmapTransform(MAX_WIDTH, MAX_HEIGHT))
.skipMemoryCache()
.resize(size, size)
.centerInside()
.into(target);
还有变换:
class BitmapTransform implements Transformation {
int maxWidth;
int maxHeight;
public BitmapTransform(int maxWidth, int maxHeight) {
this.maxWidth = maxWidth;
this.maxHeight = maxHeight;
}
@Override
public Bitmap transform(Bitmap source) {
int targetWidth, targetHeight;
double aspectRatio;
int maxWidthTmp = maxWidth;
int maxHeightTmp = maxHeight;
if (source.getWidth() > source.getHeight()) {
targetWidth = maxWidthTmp;
aspectRatio = (double) source.getHeight() / (double) source.getWidth();
targetHeight = (int) (targetWidth * aspectRatio);
} else {
targetHeight = maxHeightTmp;
aspectRatio = (double) source.getWidth() / (double) source.getHeight();
targetWidth = (int) (targetHeight * aspectRatio);
}
Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false);
if (result != source) {
source.recycle();
}
return result;
}
@Override
public String key() {
return maxWidth + "x" + maxHeight;
}
};
我已尝试检查进入 Transform 方法的源参数的比例,但宽度始终为:666。有关如何执行此操作的任何建议?
谢谢
【问题讨论】:
-
您正在使用调整大小以及 centerInside。尝试只使用其中一个