欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 动画(一)基本的补间动画实现原地旋转

程序员文章站 2022-03-25 14:55:19
...

需要做一个等待的图片就是一个小圆环一直在旋转的那种的,好久没用动画突然一下忘了。。。

随手把这个中介一哈,这篇只是说补间动画,而且是非常基础的使用,其他的有时间再写了。


先说一下基础的知识点:

Android 的三种动画:

        View Animation (Tween Animation 补间动画)

                Drawable Animation (Frame Animation 帧动画)

        Property Animation (属性动画)


下面就开始实现一个围绕中心旋转的图片。

先在布局文件里面添加一个ImageView (懒得找图片就用纯蓝色的图片代替了)。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.autophix.dnt.hongyangzzzj.MainActivity">

    <ImageView
        android:id="@+id/iv"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:scaleType="fitXY"
        android:src="#91bef0"/>


</RelativeLayout>

这个没啥好说的。。。

下面是再res下新建anim文件夹   新建tip.xml 文件   

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    
    <rotate
        android:fromDegrees="0"
        android:toDegrees="359"
        android:duration="500"
        android:repeatCount="-1"
        android:pivotX="50%"
        android:pivotY="50%"/>

</set>
这里面需要讲解一下,

fromDegress  toDegress  代表从 0到359度  开始旋转(若设置成360在停止时会出现停顿现象)。

duration 旋转所用时间为500ms  就是0.5s 

旋转中心距离View的左边缘为50%距离,距离View的上边缘为50%距离,即正中心。

repeatCount 代表重复次数  -1  就是无限重复


MainActivity代码:

        ImageView iv = (ImageView) findViewById(R.id.iv);
        Animation a = AnimationUtils.loadAnimation(this , R.anim.tip);
        LinearInterpolator lin = new LinearInterpolator();
        a.setInterpolator(lin);

        if (a != null){
            iv.startAnimation(a);
        }
OK,然后运行一哈,就会看到了。以后有时间了再接着总结其他的两种动画和把这种动画加深理解。