Android实现菊花loading动画

在一些网络请求中,用户操作中,我们往往需要一些耗时等待的动画,一开始本来用一个比较酷炫的三方加载动画,后来因为嫌弃太丑,不得不切换使用原始的菊花加载动画,可谁知UI给出一系列的菊花动画图片,

虽然动画有帧动画一说,可加载多张图片,但是本着不占用存储空间的准则,这里只使用一张图片,然后将之旋转起来即可完成动画。

首先loading.png图片(我们放在res/drawable下)

Android实现菊花loading动画_第1张图片

创建一个动画文件,命名为:anim.xml

文件位置在:
res/drawable/anim.xml:


<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/loading"
    android:fromDegrees="0.0"
    android:pivotX="50.0%"
    android:pivotY="50.0%"
    android:toDegrees="360.0" />
放在ProgressBar中进行加载

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
 
    <ProgressBar
        android:id="@+id/loading"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:indeterminateBehavior="repeat"
        android:indeterminateDrawable="@drawable/anim" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="6dp"
        android:text="加载中..." />
LinearLayout>

之所以能够让菊花能够动起来,主要是ProgressBar设置了以下两个属性:

android:indeterminateBehavior="repeat"
android:indeterminateDrawable="@drawable/anim"

重复旋转的属性及所要旋转图片的属性。

你可能感兴趣的:(android开发)