Android layoutanimation的应用

本文探讨了如何在Android中应用layoutanimation到ViewGroup,特别是让ListView的每个item以特殊动画展示。通过设置layoutanimation属性,可以实现子元素出场的动态效果。此外,还提及了如何自定义activity切换动画,利用overridependingtransition方法指定enteranimation和exitanimation资源ID,该方法需在startActivity或finish之后调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

layoutanimation作用于viewgroup,为viewgroup指定一个动画,这样当他的子元素出场时就具有这种动画效果。让我们来看看特殊的listview,他的每个item都已特殊的动画出现。

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
    android:animation="@anim/anim_item"
    android:animationOrder="reverse"
    android:delay="0.5" />
delay子元素开始动画事件延迟

animationOrder表示出场次序 有normal 正常次序,random随机入场,reverse 倒叙入场,animation 具体入场动画
为子元素指定入场动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:shareInterpolator="true" >

    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />

    <translate
        android:fromXDelta="500"
        android:toXDelta="0" />

</set>

为viewgroup指定layoutanimation属性,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layoutAnimation="@anim/anim_layout" >
    </ListView>


</LinearLayout>
除了在xml内指定layoutanimation之外,还可以在代码里实现:

listview = (ListView) findViewById(R.id.listview);
		Animation animation = AnimationUtils.loadAnimation(ListLayOut.this,
				R.anim.anim_item);
		LayoutAnimationController controller = new LayoutAnimationController(
				animation);
		controller.setDelay(0.5f);
		controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
		listview.setLayoutAnimation(controller);
2、activity的切换效果

activity的切换是有固定的动画的,但是我们也可以自己来定义,主要由overridependingtransition(int enteranimation , int exitanimation),这个方法必须在startactivity之后或者在finish之后调用才有效,他的参数含义如下:

enteranimation activity被打开时的动画资源id

exitanimation  activity被暂停时的动画资源id

	public static void startActivity(Activity activity) {
		Intent intent = new Intent(activity, ListLayOut.class);
		activity.startActivity(intent);
		activity.overridePendingTransition(R.anim.anim_item, R.anim.anim_item2);
	}
当然也可以给fragment添加出入动画,但是只能添加view动画,不能田间属性动画。所以兼容性比较低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值