同心扩展渐变圆圈的Android动画

时间:2016-08-23 03:04:47

标签: android android-layout android-animation android-drawable

在Android中,我正在寻找尽可能简单的“内置”方式来创建一个可绘制的或自定义的动画视图来设置4个缓慢扩展半径的同心圆。

expanding fading concentric circles

哪里是最好的起点?
是否可以在纯XML中执行此操作?
如果没有,可以使用单层drawable完成,还是应该使用多层drawable?

谢谢!

1 个答案:

答案 0 :(得分:2)

最好的起点是this repository。这是Android的简单可配置波纹背景动画。插上它就可以了。以下是步骤:

要在安装后进行设置,请将RippleBackground添加到您的布局中,如下所示

<com.skyfishjy.library.RippleBackground
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/content"
    app:rb_color="#0099CC"
    app:rb_radius="32dp"
    app:rb_rippleAmount="4"
    app:rb_duration="3000"
    app:rb_scale="6">
    <ImageView
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:layout_centerInParent="true"
        android:id="@+id/centerImage"
        android:src="@drawable/demoImage"/>
</com.skyfishjy.library.RippleBackground>

然后你可以通过覆盖这样的onClick方法来启动动画,

final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
ImageView imageView=(ImageView)findViewById(R.id.centerImage);
imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        rippleBackground.startRippleAnimation();
    }
});

调用方法rippleBackground.stopRippleAnimation()来停止动画。

希望它有所帮助。