Android中给控件设置动画效果

LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果,可以在XML文件中设置,亦可以在Java代码中设置。

一种直接在XML文件中设置

1.  在res/anim文件夹下新建一个XML文件,名为list_anim_layout.xml,
 
01.<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" 
02.        android:delay="30%" 
03.        android:animationOrder="reverse" 
04.        android:animation="@anim/slide_right" /> 

android:delay  子类动画时间间隔 (延迟)   70% 也可以是一个浮点数 如“1.2”等

android:animationOrder="random"   子类的显示方式 random表示随机

android:animationOrder 的取值有 


 normal  0  默认
 reverse 1  倒序
 random 2  随机


android:animation="@anim/slide_right" 表示孩子显示时的具体动画是什么
 
说明:其中delay的单位为秒;animation为设置动画的文件。animationOrder为进入方式

2.  在res/anim文件夹下新建一个XML文件,名为slide_right,即上面用到的文件。

[html]
01.    <set xmlns:android="http://schemas.android.com/apk/res/android"  
02.        android:interpolator="@android:anim/accelerate_interpolator"> 
03.    <translate android:fromXDelta="-100%p" android:toXDelta="0" 
04.            android:duration="@android:integer/config_shortAnimTime" /> 
05.   </set>  

显示的效果为ListView第一次出现的时候为 item随机出现 每个Item都是从左不可见(-100%p)的区域向右滑动到显示的地方
 
3.  在主布局文件中为控件添加如下配置:

android:layoutAnimation="@anim/list_anim_layout",即第一步的布局文件。


第二种设置方法:在Java代码中设置

1. 同上;

2. 同上;
 
3.  在Acitivty中添加如下代码:
 
//通过加载XML动画设置文件来创建一个Animation对象;

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

       //得到一个LayoutAnimationController对象;

       LayoutAnimationController lac=new LayoutAnimationController(animation);

       //设置控件显示的顺序;

       lac.setOrder(LayoutAnimationController.ORDER_REVERSE);

       //设置控件显示间隔时间;

       lac.setDelay(1);

       //为ListView设置LayoutAnimationController属性;

       datalist.setLayoutAnimation(lac);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要为控件设置动画,可以按照以下步骤进行操作: 1. 在res目录下创建一个`anim`文件夹,用于存放动画资源文件。 2. 在`anim`文件夹创建一个XML文件,定义帧动画的每一帧。 3. 在代码找到目标控件,并为其设置动画。 下面是一个示例代码: 1. 首先,在`res/anim`文件夹创建一个XML文件(例如`frame_animation.xml`),定义帧动画的每一帧。以下示例定义了一个渐变的帧动画: ```xml <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/frame1" android:duration="200" /> <item android:drawable="@drawable/frame2" android:duration="200" /> <item android:drawable="@drawable/frame3" android:duration="200" /> <!-- 添加更多的帧 --> </animation-list> ``` 2. 在代码找到目标控件,并为其设置动画。以下示例将帧动画应用于一个ImageView: ```java ImageView imageView = findViewById(R.id.imageView); imageView.setBackgroundResource(R.anim.frame_animation); AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground(); animationDrawable.start(); ``` 在上述代码,我们首先通过`setBackgroundResource()`方法将帧动画资源设置为ImageView的背景。然后,通过强制类型转换将背景转换为AnimationDrawable对象,并调用`start()`方法开始播放帧动画。 这样,就可以为控件设置动画了。根据实际需求,可以调整帧动画的帧率、持续时间以及添加更多的帧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值