我有一个ImageView,它将填充整个屏幕宽度,并且还会像屏幕底部的波浪一样上下动画。我使用了scaleType =“matrix”,因为它不应该伸展到适合屏幕。
但是,一旦布局完成后,Android会在布局更新时裁剪掉外面的所有东西,所以一旦它开始动画,底部就会丢失。
所以我的问题是,如何阻止Android裁剪我的ImageView?
答案 0 :(得分:0)
我写了一个似乎可以解决这个问题的课程,如果其他人遇到这个问题我会分享它。
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);
}
}