Java 如何防止Android裁剪我的ImageView?

Java 如何防止Android裁剪我的ImageView?,java,android,imageview,crop,Java,Android,Imageview,Crop,我有一个ImageView,它将填充整个屏幕宽度,还将像屏幕底部的波浪一样上下设置动画。我使用了scaleType=“matrix”,因为它不应该拉伸以适应屏幕 然而,一旦布局完成,Android会将布局更新时外部的所有内容都裁剪掉,因此一旦开始设置动画,底部部分就会丢失 所以我的问题是,如何防止Android裁剪我的ImageView?我写了一个类,似乎可以解决这个问题,我想如果其他人遇到这个问题,我会分享它 import android.content.Context; import and

我有一个ImageView,它将填充整个屏幕宽度,还将像屏幕底部的波浪一样上下设置动画。我使用了scaleType=“matrix”,因为它不应该拉伸以适应屏幕

然而,一旦布局完成,Android会将布局更新时外部的所有内容都裁剪掉,因此一旦开始设置动画,底部部分就会丢失


所以我的问题是,如何防止Android裁剪我的ImageView?

我写了一个类,似乎可以解决这个问题,我想如果其他人遇到这个问题,我会分享它

import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.ImageView;

public class NoCropImageView extends ImageView
{
    private int fixedWidth = 0;
    private int fixedHeight = 0;

    private int[] attrsArray = new int[] { android.R.attr.layout_width, android.R.attr.layout_height };

    public NoCropImageView(final Context context, final AttributeSet attrs)
    {
        super(context, attrs);

        TypedArray ta = context.obtainStyledAttributes(attrs, attrsArray);
        int layout_width = ta.getDimensionPixelSize(0, ViewGroup.LayoutParams.MATCH_PARENT);
        int layout_height = ta.getDimensionPixelSize(1, ViewGroup.LayoutParams.MATCH_PARENT);
        ta.recycle();

        fixedWidth = layout_width;
        fixedHeight = layout_height;
    }

    @Override
    protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec)
    {
        this.setMeasuredDimension(fixedWidth, fixedHeight);
    }
}

那么试试scaleType:fitxy或者scaleType:centerInside