Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整

本文介绍了如何在Android中使用translate、scale、alpha和rotate动画来实现Activity切换时的动态效果,同时讲解了如何调整控件的位置,提升用户体验。
摘要由CSDN通过智能技术生成

Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整

      如果需要控件停在动画后的位置,需要设置android:fillAfter属性为true,在set节点中。默认在动画结束后回到动画前位置。设置android:fillAfter后,我们看到了控件留在了动画后的位置,其实也只是看到在那个位置,真实位置还是在原来动画前那里,你会发现Button不能被点击,就是这个原因。所以我们可以在动画结束后,手动把控件移动到动画结束后的位置。这就需要根结点为AbsoluteLayout,因为LinearLayout不能通过x,y座标定位。具体方法:把布局换成AbsoluteLayout,使用Animation的setAnimationListener设置动画播放事件,在onAnimationEnd方法中,使用控件的setLayoutParams方法,设置动画后的位置。
    在同一个FrameLayout中要实现两个View同时淡入和淡出,动画结束后发现view的内容重叠,使得内容模糊不清,这样可以开启一个线程,每隔一定时间发送一个消息给handler处理,设置view的透明度为0,setAlpha(0);这个时间必须和alpha中的during属性设置的时间相同。
              overridePendingTransition只支持android 2.0以上版本
Android的动画效果分为两种,一种是tweened animation(补间动画),第二种是frame by frame animation。一般我们用的是第一种。补间动画又分为AlphaAnimation,透明度转换 RotateAnimation,旋转转换 ScaleAnimation,缩放转换 TranslateAnimation 位置转换(移动)。
动画效果在anim目录下的xml文件中定义,在程序中用AnimationUtils.loadAnimation(Context context,int ResourcesId)载入成Animation对象,在需要显示动画效果时,执行需要动画的View的startAnimation方法,传入Animation,即可。切换Activity也可以应用动画效果,在startActivity方法后,执行overridePendingTransition方法,两个参数分别是切换前的动画效果,切换后的动画效果,下面的例子中传入的是两个alpha动画,以实现切换Activity时淡出淡入,渐隐渐现效果。

下面贴出代码:
两个Activity的布局文件 main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/ll"
    android:background="@drawable/white"
    >
<TextView  android:id="@+id/tv"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="translate动画效果"
    />
<TextView  android:id="@+id/tv2"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="scale动画效果"
    />
<TextView  android:id="@+id/tv3"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="alpha动画效果"
    />
<TextView  android:id="@+id/tv4"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="rotate动画效果"
    />
<Button android:id="@+id/bt3"
 android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值