View Animation补间动画

原创 2017年08月13日 14:07:08

布局很简单,一个图片,五个监听按钮。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context="com.example.viewanimation.MainActivity">

    <Button
        android:id="@+id/but"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="translate"
        android:text="位移" />

    <Button
        android:id="@+id/but2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="alpha"
        android:text="透明度" />

    <Button
        android:id="@+id/but3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="rotate"
        android:text="旋转" />

    <Button
        android:id="@+id/but4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="scale"
        android:text="收缩" />

    <Button
        android:id="@+id/but5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="set"
        android:text="全部" />

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"

        android:background="@mipmap/ic_launcher" />


</LinearLayout>

MainActivity类

public class MainActivity extends AppCompatActivity {
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView) findViewById(R.id.image);
    }

    //位移动画
    public void translate(View v) {
        TranslateAnimation translateAnimation = new TranslateAnimation(
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.5f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.5f);
        //执行的时间
        translateAnimation.setDuration(1000);
        //执行次数
        translateAnimation.setRepeatCount(8);
        //是否是动画结束时保存最后的状态
        translateAnimation.setFillAfter(true);
        //设置插件
        translateAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
        //设置动画执行的模式
        //REVERSE  反向
        //RESTART   默认
        translateAnimation.setRepeatMode(Animation.REVERSE);
        //执行动画
        imageView.setAnimation(translateAnimation);
        //开始动画
        imageView.startAnimation(translateAnimation);

    }

    // 透明度
    public void alpha(View v) {
        AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.0f);
        alphaAnimation.setDuration(3000);
        //动画执行的模式
        //alphaAnimation.setRepeatMode(Animation.REVERSE);
        imageView.setAnimation(alphaAnimation);
        imageView.startAnimation(alphaAnimation);
    }

    // 旋转
    public void rotate(View v) {
        RotateAnimation rotateAnimation = new RotateAnimation(0f, 360,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
        rotateAnimation.setDuration(6000);
        rotateAnimation.setRepeatCount(1);
        imageView.startAnimation(rotateAnimation);
    }

    // 收缩
    public void scale(View v) {
        ScaleAnimation scaleAnimation = new ScaleAnimation(0.0f, 1.0f, 0.0f,
                1.0f, Animation.RELATIVE_TO_SELF, 0.5f,
                Animation.RELATIVE_TO_SELF, 0.5f);
        scaleAnimation.setDuration(3000);
        scaleAnimation.setRepeatCount(2);
        scaleAnimation.setRepeatMode(Animation.REVERSE);
        scaleAnimation.setFillAfter(true);
        imageView.setAnimation(scaleAnimation);
    }


    //组合动画
    public void set(View v){
        //共同使用一个指示器
        AnimationSet animationSet=new AnimationSet(true);
        //创建位移动画
        TranslateAnimation translateAnimation=new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 1.0f);
        //创建透明动画
        AlphaAnimation alphaAnimation=new AlphaAnimation(0.0f, 1.0f);
        //创建缩放动画
        ScaleAnimation scaleAnimation=new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        //创建旋转动画
        RotateAnimation rotateAnimation=new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

        //将动画添加到animationSet

        animationSet.addAnimation(rotateAnimation);
        animationSet.addAnimation(alphaAnimation);
        animationSet.addAnimation(scaleAnimation);
        animationSet.addAnimation(translateAnimation);


        //设置执行的时间
        animationSet.setDuration(5000);
        //设置执行的次数
        animationSet.setRepeatCount(1);
        //设置执行的模式  反向
    animationSet.setRepeatMode(Animation.REVERSE);
        //执行动画
        imageView.setAnimation(animationSet);

    }

}

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android 动画之二 View Animation —— 补间(Tween)动画与Interpolator的介绍

在一个看脸的社会中,不论什么事物,长得好看总是能多吸引一些目光。App同样不例外,一款面相不错的App就算功能已经被轮了千百遍,依然会有人买账,理由就是看得顺眼,于是平面设计人员越来越被重视。白驹过隙...

Android动画(View Animation之Tween Animation(补间动画))

废话不多说直接上代码 public class MainActivity extends AppCompatActivity implements View.OnClickList...

Animation动画之View Animation(补间动画)

Android Animation动画

Android 补间动画Animation的实用应用

转载请注明: http://blog.csdn.net/sinat_30276961/article/details/49868409上一篇,我总结了补间动画的各种特性,并写了个小的应用来使用这些特...

Android Animation之补间动画

Android Animation之补间动画转载请注明: http://blog.csdn.net/sinat_30276961/article/details/49721207 最近工作忙,导...

安卓补间动画Tween Animation

补间动画:字面意思: 前后之间的动画.主要指控件两个形态之间变化的动画形态变化有: alpha 透明度的变化 scale 缩放度的变化 translate 平移点的变化 rotate 旋转/角度的变化...

android—补间动画(Tween Animation)旋转的血轮眼

Android系统提供了两种实现动画的方式,一种是补间动画(Tween Animation),另一种是帧动画(Frame Animation)。4种动画效果,分别是: AlphaAnimation(透...

Android Animation 补间动画

项目简介: 该项目为补间动画 详细介绍: 该项目共演示了四种补间动画动画以及补间动画的组合,这四种补间动画分别是: 位移、缩放、透明、旋转 该应用涉及到的知识有: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)