Android-补间动画效果

Android的SDK提供了三种类型的动画,分别是补间动画、逐帧动画和插值属性动画。下面先介绍第一种动画效果-补间动画。

补间动画可以应用于View,让开发者可以定义一些关于大小、位置、旋转和透明度的改变效果,达到让View的内容动起来的效果。

补间动画是使用Animation类创建的,它有4个直接子类,分别实现不同的动画效果,分别为:

AlphaAnimation渐变透明度动画效果,即淡入淡出效果
ScaleAnimation渐变尺寸伸缩动画效果,即缩放效果
TranslateAnimation画面转换位置移动动画效果,移动效果
RotateAnimation画面转移旋转动画效果,即旋转效果

要使用补间动画的效果,有两种方法,第一种是在XML文件中设置动画效果;第二种是在Java代码中设置。下面分别介绍这两种方法:

1.在XML文件中设置方式:

在Android项目的res目录下新建anim文件夹,然后在anim文件夹下新建firstanim.xml,添加动画效果的配置代码,示例代码如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <alpha
	android:fromAlpha="0.1"
	android:toAlpha="1.0"
	android:duration="3000"
	/> 
<!-- 透明度控制动画效果 alpha
        
            fromAlpha 为动画起始时透明度
            toAlpha   为动画结束时透明度
            取值说明: 0.0表示完全透明,1.0表示完全不透明,以上值取0.0-1.0之间的float数据类型的数字

            duration  为动画持续时间,时间以毫秒为单位
-->
  

  <scale  
          android:interpolator=
                     "@android:anim/accelerate_decelerate_interpolator"
          android:fromXScale="0.0"
          android:toXScale="1.4"
          android:fromYScale="0.0"
          android:toYScale="1.4"
          android:pivotX="50%"
          android:pivotY="50%"
          android:fillAfter="false"
          android:duration="700" />

<!-- 尺寸伸缩动画效果 scale
       interpolator 指定一个动画的插入器
         几种简单的动画插入器:
          accelerate_decelerate_interpolator  先加速后减速,开始结束时慢,中间加速            
	accelerate_interpolator        加速,开始时慢中间加速
            decelerate_interpolator       减速,开始时快然后减速 
	LinearInterpolator        线性,线性均匀改变      
         
            fromXScale 为动画起始时 X坐标上的伸缩尺寸    
            toXScale   为动画结束时 X坐标上的伸缩尺寸     
        
            fromYScale 为动画起始时Y坐标上的伸缩尺寸    
            toYScale   为动画结束时Y坐标上的伸缩尺寸    
           以上四种属性值说明:   
    
                    0.0表示收缩到没有 
                    1.0表示正常无伸缩     
                    值小于1.0表示收缩  
                    值大于1.0表示放大
        
            pivotX     为动画相对于物件的X坐标的开始位置
            pivotY     为动画相对于物件的Y坐标的开始位置
	 以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置

            duration  为动画持续时间,时间以毫秒为单位

          fillAfter 当设置为true ,控件停放在动画结束的位置
-->



  <translate
	android:fromXDelta="30"
	android:toXDelta="-80"
	android:fromYDelta="30"
	android:toYDelta="300"
	android:duration="2000"
/>
<!-- translate 位置转移动画效果
           
	fromXDelta 为动画起始时 X坐标上的位置    
            toXDelta   为动画结束时 X坐标上的位置
            fromYDelta 为动画起始时 Y坐标上的位置
            toYDelta   为动画结束时 Y坐标上的位置
           没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物             

            duration  动画持续时间,时间以毫秒为单位
-->


  <rotate 
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromDegrees="0" 
        android:toDegrees="+350"         
        android:pivotX="50%" 
        android:pivotY="50%"     
        android:duration="3000" />  
<!-- rotate 旋转动画效果
       interpolator 指定一个动画的插入器
      fromDegrees 为动画起始时控件的角度    
       toDegrees   为动画结束时物件旋转的角度 可以大于360度   
      当角度为负数——表示逆时针旋转
       当角度为正数——表示顺时针旋转              
       负数from——to正数:顺时针旋转)   
      (负数from——to负数:逆时针旋转) 
      (正数from——to正数:顺时针旋转) 
      (正数from——to负数:逆时针旋转)       

       pivotX    为动画相对于物件的X坐标的开始位置
        pivotY    为动画相对于物件的Y坐标的开始位置
       以上两个属性值 从0%-100%中取值
       duration  为动画持续时间,时间以毫秒为单位
-->
</set>

 

在Activity中的onCreate()方法中,获取在XML中配置的动画效果,代码如下:

Animation animation= AnimationUtils.loadAnimation(this,R.anim.firstanim);


如果这个动画效果使用在一个ImageView上,可以参考如下代码:

imageView.startAnimation(animation);

2.在Java代码中设置方式:

AlphaAnimation为例,

//首先声明Animation的一个对象
private Animation alpha;


 //在Activity的onCreate()方法中实例化这个对象
alpha=new AlphaAnimation(0.1f, 1.0f);



//设置动画持续时间为3秒

alpha.setDuration(3000);


如果这个动画效果使用在一个ImageView上,可以参考如下代码:

imageView.startAnimation(alpha);


 

欢迎关注技术分享微信公众号:JavaQ

     

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio 是一款专门用于开发 Android 应用程序的集成开发环境(IDE)。在 Android Studio 中创建的项目可以包含许多不同的元素,例如布局文件、Java 代码、XML 文件等等。 动画(Tween Animation)是一种 Android Studio 中的动画类型,可以通过一系列的关键帧(Keyframes)来定义动画效果动画可以用于平移、旋转、缩放或透明度动画等。在 Android Studio 中,可以通过 XML 文件来创建动画。以下是创建动画的步骤: 1. 在 Android Studio 中创建一个新的 XML 文件。可以选择 File -> New -> Android Resource File。 2. 在弹出的对话框中,选择 Animation 作为资源类型,然后设置文件名和其他选项。 3. 打开新创建的 XML 文件,并定义动画的关键帧。 4. 保存并使用动画,可以在布局文件或代码中引用动画资源 ID。 例如,以下是一个简单的动画 XML 文件,它会将一个图像从左上角平移到右下角: ``` <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%" android:fromYDelta="0%" android:toXDelta="100%" android:toYDelta="100%" android:duration="1000" /> </set> ``` 可以在布局文件中使用如下代码来应用这个动画: ``` <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/my_image" android:animation="@anim/my_animation" /> ``` 这个例子中,@anim/my_animation 是一个指向动画资源文件的引用。当这个布局文件被加载时,图像会按照定义的动画效果进行移动。 ### 回答2: Android Studio动画是一种基于时轴的运动动画,其运动轨迹是由起点、终点、路径以及持续时等多个属性组成的。动画适用于控件的渐变、透明度、位置、大小、旋转等动画效果的实现。 首先,我们需要在XML文件中定义我们的动画效果。这可以通过使用内置XML属性实现。例如,对于alpha(透明度)动画,我们可以在XML文件中使用透明度属性,如下所示: ``` <alpha android:fromAlpha="1.0" android:toAlpha="0.5" android:duration="1000"/> ``` 这将从一个完全不透明的控件开始,逐渐到50%的透明度,持续时为1秒钟(1000毫秒)。 除了透明度,我们还可以使用其他属性来定义不同的动画效果。 例如,用于旋转的属性是rotation,用于平移的属性是translationX和translationY,而用于缩放的属性是scaleX和scaleY等。 一旦我们定义了动画的XML文件,我们就可以在我们的代码中引用它并应用它。使用AnimatorInflater. inflateResource()或AnimationUtils. loadAnimation()方法可以将动画文件加载到我们的代码中。 ``` // 加载一个XML文件中的动画资源 Animation animation = AnimationUtils.loadAnimation(this, R.anim.fade_in); // 将所加载的动画应用于控件 textview.startAnimation(animation); ``` 最后,启动和停止动画非常简单,只需调用startAnimation()和clearAnimation()方法。 ``` textview.startAnimation(animation); //启动动画 textview.clearAnimation(); //停止动画 ``` 总的来说,Android Studio动画是一种非常有用的技术,可以使我们的应用程序更有吸引力和更有趣。我们只需要定义我们的动画效果,然后在我们的代码中引用它们,就可以在我们的应用程序中快速应用它们。 ### 回答3: Android Studio是一款非常流行的Android开发工具,它允许开发者使用各种技术和方法来开发Android应用程序。其中一种最常用的技术就是动画,通过它可以实现许多流行的动效,比如渐隐渐现、移动、旋转等。 动画是一种类型的动画,用于在指定时内平滑地改变视图对象的属性。一般来说,动画由属性动画器、动画资源和XML布局文件三部分组成。属性动画器是动画资源的核心,它定义了需要动画的视图对象以及如何对它进行动画动画资源是指定义了动画的各种属性和效果,比如动画的持续时、移动方向和加速度等。XML布局文件则用于指定需要动画的控件对象和动画资源。 通过使用Android Studio的动画,您可以为Android应用程序添加一些非常酷的效果。这些效果可以让您的应用程序更加吸引人,将用户与其信任,同时提高应用程序的可见性和意识度。此外,动画还可以改进应用程序的功能性,比如将状态切换、转场动画和滚动效果等集成到您的应用程序中,以提高用户体验。 总之,动画是一种非常有用的技术,用于开发Android应用程序。通过使用Android Studio提供的动画工具,开发者可以轻松地创造出各种各样的动画效果,从而为其应用程序添加一些非常酷的新功能。因此,如果您是一位Android开发者,就应该学习并应用动画来改进您的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值