Android AnimationSet使用

37 篇文章 0 订阅
package com.example.thinkpad.animation;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;

public class Main3Activity extends AppCompatActivity {
    ImageView imageView0;
    ImageView imageView1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        imageView0=(ImageView)findViewById(R.id.img0);
        imageView1=(ImageView)findViewById(R.id.img1);
        TranslateAnimation translateAnimation=new TranslateAnimation(Animation.RELATIVE_TO_PARENT,0f,
                Animation.RELATIVE_TO_PARENT,0.5f,
                Animation.RELATIVE_TO_PARENT,0f,
                Animation.RELATIVE_TO_PARENT,-0.5f);
        translateAnimation.setDuration(3000);
        translateAnimation.setRepeatCount(1);
        RotateAnimation rotateAnimation=new RotateAnimation(0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        rotateAnimation.setRepeatCount(Animation.INFINITE);
        rotateAnimation.setDuration(3000);
        ScaleAnimation scaleAnimation=new ScaleAnimation(1.0f,0.5f,1.0f,0.5f, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        final AlphaAnimation alphaAnimation=new AlphaAnimation(1.0f,0.0f);
        final AnimationSet animationSet=new AnimationSet(false);
        scaleAnimation.setDuration(3000);
        scaleAnimation.setRepeatCount(1);
        alphaAnimation.setRepeatCount(1);
        alphaAnimation.setDuration(3000);
        animationSet.addAnimation(rotateAnimation);
        animationSet.addAnimation(translateAnimation);
       animationSet.addAnimation(alphaAnimation);
       animationSet.addAnimation(scaleAnimation);
        RotateAnimation rotateAnimation1=new RotateAnimation(0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        rotateAnimation1.setRepeatCount(2);
        rotateAnimation1.setDuration(3000);


        rotateAnimation1.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
         Log.d("onstart","start");
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                imageView1.setAnimation(animationSet);
                imageView1.startAnimation(animationSet);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

                    Log.d("repeat3","goodgood");


            }
        });
        imageView0.setAnimation(rotateAnimation1);

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio提供了多种动画实现方式,包括属性动画、补间动画、帧动画等。 属性动画是一种比较灵活的动画实现方式,可以对任意对象的属性进行动画操作。可以通过ValueAnimator、ObjectAnimator等类来创建属性动画,然后通过AnimatorSet来组合多个动画。 补间动画是一种比较简单的动画实现方式,可以对View的位置、大小、透明度等属性进行动画操作。可以通过AnimationUtils工具类来创建补间动画,然后通过AnimationSet来组合多个动画。 帧动画是一种比较基础的动画实现方式,可以通过一组连续的图片来实现动画效果。可以通过AnimationDrawable类来创建帧动画。 以上是Android Studio中常用的动画实现方式,具体使用方法可以参考官方文档或相关教程。 ### 回答2: Android Studio是开发Android应用程序的一个集成式开发环境。它允许开发人员以一种可视化和交互的方式构建应用程序,并提供各种工具和代码库帮助开发人员快速开发应用程序。在开发应用程序时,动画的实现是非常重要的,因为动画可以使应用程序更加生动、吸引人和易于使用Android Studio提供了多种动画实现方式,例如:Tween Animation、Frame Animation和Property Animation。其中,Property Animation是一个强大的动画框架,它可以对任何可动画属性进行动画,如位置、大小、颜色、透明度等。此外,Property Animation采用动画器(Animator)来实现动画,动画器相对于其动画值进行动画。 动画的实现大多数需要以下步骤: 1. 创建Animation XML文件:创建动画效果的XML文件。通常,Tween Animation和Frame Animation都是在XML文件中定义的,而Property Animation是在代码中动态创建的。 2. 创建Animation对象:在Java代码中创建Animation对象。通常,Tween Animation和Frame Animation都是使用AnimationUtils工具类创建的,而Property Animation则需要使用AnimatorSet、ValueAnimator和ObjectAnimator类来动态创建。 3. 将Animation对象应用于View:动画可以应用于View对象,将View对象与其动画器相关联。 4. 开始动画:动画可以启动,可以用View.startAnimation()方法或Animator.start()方法。 总之,Android Studio为开发人员提供了一个完整的动画实现解决方案,使他们可以轻松地为应用程序添加生动、吸引人和易于使用的动画效果。 ### 回答3: Android Studio是Android应用程序开发的主要工具之一,其中内置有优秀的动画实现功能。采用Android Studio实现动画时,需要首先确定动画类型,对于不同的动画类型,需要使用不同的实现方式。下面我们将介绍几种常见动画实现方式: 1. 属性动画 属性动画是Android系统提供的一种实现动画的方式,可以实现对任何对象的属性进行动画处理。属性动画常用的方法是ValueAnimator和ObjectAnimator,通过对这两个类的理解,可以实现大部分动画效果。 ValueAnimator是单一属性的动画,可以实现基于数值的动画,比如alpha、scale、translation、rotation等。 ObjectAnimator可以实现任何属性的动画,通过调用setPropertyName方法指定对哪个属性实现动画效果。 2. 视图动画 视图动画仅限于对View对象进行动画处理,可以实现基于View的Alpha、ScaleX、ScaleY、TranslateX和TranslateY属性的动画。 实现视图动画可以使用以下方法: `view.startAnimation(Animation animation);` 3. 帧动画 帧动画是一种通过连续播放多张图片来实现动画效果的方式,也称之为逐帧动画。Android Studio支持通过XML文件定义帧动画,其中包含多个指向图片的Drawable资源参考。 4. SVG动画 SVG动画是一种基于矢量图形的动画,可以实现高质量的跨平台动画,而不必担心失真和像素化。在Android Studio,可以使用第三方库进行SVG动画实现,比如Lottie库。 总之,在Android Studio中实现动画的方式多种多样,可以根据需要灵活运用。需要注意的是,实现动画时应该尽量避免使用过多的动画效果,以免影响应用程序的性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值