android百战经典,百战经典第十战-LayoutAnimation布局动画效果

我们对Tween和Frame动画比较熟悉,下面通过一个实例来了解一下LayoutAnimation(布局动画)

首先要建立一个动画文件zoom_in.xml:

android:duration="1000"

android:fromXScale="0.1"

android:fromYScale="0.1"

android:pivotX="50%"

android:pivotY="50%"

android:toXScale="1.0"

android:toYScale="1.0" />

android:duration="1000"

android:fromAlpha="0"

android:toAlpha="1.0" />

这是一个大小和渐变的组合动画,scale是尺寸动画,from*Scale和to*Scale指定了初始和结束时的大小,alpha是一个渐变动画,duration表示渐变的持续时间,fromAlpha和toAlpha指定了初始的和结束的透明度。

MainActivity.java:

package com.example.layoutanimationdemo;

public class MainActivity extends ActionBarActivity {

private List list = new ArrayList();

private ListView listView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

listView = (ListView) findViewById(R.id.list);

for (int i = 0; i < 20; i++) {

list.add("测试条目" + i);

}

ArrayAdapter adapter = new ArrayAdapter(

MainActivity.this, android.R.layout.simple_list_item_1, list);

listView.setAdapter(adapter);

LayoutAnimationController layoutAnimationController = new LayoutAnimationController(

AnimationUtils.loadAnimation(this, R.anim.zoom_in));

layoutAnimationController

.setOrder(LayoutAnimationController.ORDER_NORMAL);

listView.setLayoutAnimation(layoutAnimationController);

listView.startLayoutAnimation();

}

}

考虑到版面问题,这里省略掉了导入的包,在IDE中这些包都可以自行导入。代码比较简单实现,不懂的可以参照总结部分。

运行项目:

1b4343335c6efc714022a07db165ad69.png

可以看到ListView中的条目一个个显示出来,动画效果可以让我们的应用交互性更强,用户体验更好,逼格也更高。

总结

1.实例化LayoutAnimationController 控制器,结合AnimationUtils工具类的loadAnimation方法引入动画文件;

2.setOrder(LayoutAnimationController.ORDER_NORMAL);设置显示顺序,多种显示风格可选;

(a)int ORDER_NORMAL Distributes the animation delays in the order in which view were added to their view group.//正常动画,由上往下

(b)int ORDER_RANDOM Randomly distributes the animation delays.//随机动画

(c)int ORDER_REVERSE Distributes the animation delays in the reverse order in which view were added to their view group.//倒序动画

3.listView.setLayoutAnimation(layoutAnimationController);//设定动画

listView.startLayoutAnimation();//启动动画

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值