如何显示ImageView的逐步下降,从顶部到底部(How to display an ImageV

2019-07-31 04:29发布

有逐渐显示的ImageView从上到下,像这样的方式:

很抱歉的蹩脚的动画。

Answer 1:

我不是很熟悉的Android动画,而是一个(有点hackish的)的方式来包装图像中的ClipDrawable和动画的level值。 例如:

<ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/clip_source" />

clip_source是绘制:

<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
    android:clipOrientation="vertical"
    android:drawable="@drawable/your_own_drawable"
    android:gravity="bottom" />

然后,在代码中你会:

// a field in your class
private int mLevel = 0;

ImageView img = (ImageView) findViewById(R.id.imageView1);
mImageDrawable = (ClipDrawable) img.getDrawable();
mImageDrawable.setLevel(0);
mHandler.post(animateImage);

所述animateImage是一个Runnable对象:

private Runnable animateImage = new Runnable() {

        @Override
        public void run() {
            doTheAnimation();
        }
    };

doTheAnimation方法:

private void doTheAnimation() {
    mLevel += 1000;
    mImageDrawable.setLevel(mLevel);
    if (mLevel <= 10000) {
        mHandler.postDelayed(animateImage, 50);
    } else {
        mHandler.removeCallbacks(animateImage);
    }
}


文章来源: How to display an ImageView progressively down from top to bottom