我花了很长时间研究这个问题无济于事。我试图自动调整ImageView的大小以匹配父视图宽度(保持宽高比),同时只允许裁剪图像的顶部。图像的左,右和底部无法切除,因此centerCrop无法满足我的需求。
图像的顶部会淡入应用程序的背景颜色,这是图像中唯一可以裁剪以获得适当宽高比的部分。
我也尝试使用fitXY,但是,长宽比没有保留,在某些设备上看起来很糟糕。
答案 0 :(得分:0)
我已经解决了这个问题。使用Mark Martinsson发布的自定义ImageView类(在这里回答https://stackoverflow.com/a/17424313/2040690),并将ImageView设置为alignParentBottom,图像将完美地放在视图内部,同时保持纵横比,顶部图像的多余部分将只是伸出屏幕边界,基本上“裁剪”它。
答案 1 :(得分:0)
使用Glide
,我创建了一个转换来简单地使位图正方形
Glide.with(view.getContext()).load(someUrl))
.transform(new BitmapTransformation(view.getContext()) {
@Override
protected Bitmap transform(BitmapPool pool,
Bitmap toTransform, int outWidth,
int outHeight) {
return Bitmap.createBitmap(toTransform, 0, 0,
toTransform.getWidth(), toTransform.getWidth());
}
@Override
public String getId() {
return "some_unique_id";
}
}).into(imageView);