Android ImageView,保持宽高比和裁剪图像顶部

时间:2015-03-20 21:48:48

标签: android imageview

我花了很长时间研究这个问题无济于事。我试图自动调整ImageView的大小以匹配父视图宽度(保持宽高比),同时只允许裁剪图像的顶部。图像的左,右和底部无法切除,因此centerCrop无法满足我的需求。

图像的顶部会淡入应用程序的背景颜色,这是图像中唯一可以裁剪以获得适当宽高比的部分。

我也尝试使用fitXY,但是,长宽比没有保留,在某些设备上看起来很糟糕。

2 个答案:

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