动画ImageView高度

时间:2014-04-30 08:45:07

标签: android android-layout imageview

我有一张图片:

enter image description here

我将此图像作为源添加到自定义ImageView:

public class TopCropImageView extends ImageView {


public TopCropImageView(Context context) {
        super(context);
        setScaleType(ScaleType.MATRIX);
    }

    public TopCropImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setScaleType(ScaleType.MATRIX);
    }

    public TopCropImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setScaleType(ScaleType.MATRIX);
    }

    @Override
    protected boolean setFrame(int l, int t, int r, int b) {
        Matrix matrix = getImageMatrix();
        float scaleFactor = getWidth()
                / (float) getDrawable().getIntrinsicWidth();
        matrix.setScale(scaleFactor, scaleFactor, 0, 0);
        setImageMatrix(matrix);
        return super.setFrame(l, t, r, b);
    }
}

然后我在xml中给这个TopCropImageView只有100dp的高度,而imageview看起来像:

enter image description here

这就是我想要的。

问题在于,当我点击图像时,我想让它展开,从而成为第一个图像。就像横幅展开一样。

我使用LayoutParams完成了这项工作,但我想为它设置动画。

我尝试过缩放动画,但这样做,图像的较小部分只会扩展。

我希望imageview的行为像窗帘一样,从而使背景图像可见。 请帮助。

由于

1 个答案:

答案 0 :(得分:0)

您需要在自定义图片视图中使用ValueAnimator。 看看这里 http://developer.android.com/guide/topics/graphics/prop-animation.html#value-animator