Layout动画:在android布局发生变化时添加动画效果

泡在网上的日子 / 文 发表于2014-03-18 00:00 次阅读 Layout,animation

注:本文涉及到的知识很初级,强烈建议阅读这篇文章:Android LayoutAnimation使用及扩展 

layout动画在每次布局发生变化的时候系统调用的一个预加载动画效果,使用layout动画可以让布局的变化过度看起来更自然。使用起来很简单,只需在控件中添加一个属性就可以了,系统默认是不会启动layout动画的,因此我们平时的应用中不会产生这个效果。

当然,如果你想自定义一下这个动画效果,那就必须在代码中自己写了:新建一个LayoutTransition对象,调用setLayoutTransition()方法来为layout设置动画。

下面是在xml中通过设置属性得到的默认动画效果:

使用方法:

在activity的xml中,设置android:animateLayoutChanges属性:

<LinearLayout android:id="@+id/container"
    android:animateLayoutChanges="true"
    ...
/>

这样,当该LinearLayout中的布局发生变化时,将会有动画效果。

什么情况下布局会在运行时改变呢,一般都是你的代码中调用了addView 之类的方法:

private ViewGroup mContainerView;
...
private void addItem() {
    View newView;
    ...
    mContainerView.addView(newView, 0);
}

好了,这个东西很简单,只是平时很少注意到,只要记得android自带这个功能就行了,免得到时候自己去实现。

收藏 赞 (35) 踩 (7)
上一篇:onMeasure方法中使用resolveSizeAndState,支持2.2
自定义View一般需要重写onMeasure方法,根据不同的需求onMeasure的实现也不同,如果你的View不是非常特别,都可以参考谷歌官方文档中对onMeasure的实现: @Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Try for a w
下一篇:可滑动删除的Listview:EnhancedListView-github开源代码推荐
android自带的下拉通知幕帘和谷歌记事google keep的listview都有一个共同的效果,左右滑动可删除listView,虽然实际使用中对这种效果的需求不是刚需,但能实现也是非常酷的。 github上有这种效果的开源代码EnhancedListView,项目地址: https://github.com/