android学习之布局动画的使用
2016-07-31 23:19
399 查看
之前写过一篇android动画入门里面介绍了Frame(逐帧)动画和Tween(补间)动画的使用, 感兴趣的朋友可以先看下。动画一共分四种,今天接着介绍下Layout(布局)动画的使用。 布局动画就是当布局上面的子控件发生变化(增加,删除,显示,隐藏)时所产生的动画,android默认是没有动画效果的,如果要实现这样的效果那就只能自己动手了。 提起布局动画就不得不说到LayoutTransition类,该类可以对ViewGroup中的View改变进行动画效果的显示,一共有四种动画变化类型,分别如下:APPEARING:容器中新增view时需要显示的动画。CHANGE_APPEARING:容器中新增view时,其它view需要显示的动画。DISAPPEARING:容器中删除view时需要显示的动画。CHANGE_DISAPPEARING:容器中删除view时,其它view需要显示的动画。 这几种动画形式是通过LayoutTransition的setAnimator(int transitionType, Animator animator)进行设置的,可以看到参数里面有个Animator, 你可以自己定义这四种事件类型的动画,也可以使用默认的动画。有了LayoutTransition之后,我们只需要通过setLayoutTransition(LayoutTransition)方法把一个LayoutTransition设置给ViewGroup或布局即可。 上面讲的是自定义布局动画需要一些操作,如果想要更简单一些的呢?那也有,就是默认的布局转换动画,这个实现起来就很简单了,嗯。。。先上一个效果图吧。刚刚打开App本来是没有textview的,点击click1,textview就缓缓出现了(默认动画效果),点击click2,textview就慢慢的消失了。要实现这个效果,最重要的就是需要在布局文件中加上:
android:animateLayoutChanges="true"完整的布局文件如下:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:id="@+id/rootLinearLayout" android:animateLayoutChanges="true" tools:context="com.example.wdong.mylayouttranslation.MainActivity"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:text="click1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_below="@id/button1" android:text="click2" /> </RelativeLayout>布局文件完成之后,就需要在代码里面给两个按钮添加监听世界,第一个按钮按下时,调用mRootLinearLayout.addView(textView);来增加textview,第二个按钮按下时,调用mRootLinearLayout.removeView(textView);来删除textview,这样就达到我们想要的效果了,怎么样?很简单吧。
这里只是详细说明了默认布局的实现过程,如果想要自己动手写一个自定义布局动画,那也不算太难,只需要按照我上面说的步骤操作即可,不过其中的难点可能在于Animator类的使用。关于自定义布局动画,这里有个比较不错的博客,推荐一下:http://blog.csdn.net/bgc525725278/article/details/50380061。
相关文章推荐
- Android学习之布局动画的使用
- android控件学习二:使用LayoutInflater动态加载布局和操作控件
- Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
- Android Animation学习(三) ApiDemos解析:XML动画文件的使用
- Android-UI布局---RecyclerView学习(六)item添加删除展现的动画效果
- [Android developers blog 学习笔记]android 布局优化:标签include和merge的使用
- Android布局学习四:layout_weight 的使用
- Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
- Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
- Android学习总结二:五大布局、Android测试、数据存储访问(TextUtils)、Map的使用
- android UI学习 -- 设置界面的布局(包括style的使用,selector的使用,Checkbox自定义样式,菜单项的样式)
- Android界面布局中使用GIF动画
- Android Animation学习(三) ApiDemos解析:XML动画文件的使用
- android布局学习-使用FrameLayout和LinearLayout制作QQ空间底部导航栏
- Android中的动画效果学习之二---Tween动画(使用XML文件进行配置动画效果)
- Android Animation学习(三) ApiDemos解析:XML动画文件的使用
- Android动画学习(三)之使用ValueAnimator和ObjectAnimator实现动画实例
- 2014-11-6Android学习------布局处理(九)animation动画的属性解释--------动画Animation学习篇
- Android之使用帧动画实现自定义loading加载布局
- Android动画学习(三)之使用ValueAnimator和ObjectAnimator实现动画实例