此例中以一个RelativeLayout作为父级容器,其中纵向设置4个TextView。由于在onCreate中设定了动画效果,所以在启动时,会产生类似瀑布流的效果。
layout文件如下:
<?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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <RelativeLayout android:id="@+id/subLayout" android:layout_centerInParent="true" android:gravity="center" android:layout_width="200dp" android:layout_height="200dp"> <TextView android:id="@+id/txt1" android:layout_width="100dp" android:layout_height="20dp" android:background="#f00"/> <TextView android:id="@+id/txt2" android:layout_marginTop="20dp" android:layout_below="@+id/txt1" android:layout_width="100dp" android:layout_height="20dp" android:background="#0f0"/> <TextView android:id="@+id/txt3" android:layout_marginTop="20dp" android:layout_below="@+id/txt2" android:layout_width="100dp" android:layout_height="20dp" android:background="#00f"/> <TextView android:id="@+id/txt4" android:layout_marginTop="20dp" android:layout_below="@+id/txt3" android:layout_width="100dp" android:layout_height="20dp" android:background="#f0e000"/> </RelativeLayout> </RelativeLayout>java代码如下所示:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RelativeLayout layout = (RelativeLayout) findViewById(R.id.subLayout); AnimationSet animationSet = new AnimationSet(true); TranslateAnimation animation1 = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0.0f, Animation.RELATIVE_TO_SELF,0.0f,Animation.RELATIVE_TO_SELF,-1.0f, Animation.RELATIVE_TO_SELF,0.0f); animation1.setDuration(4000); AlphaAnimation animation2 = new AlphaAnimation(0.0f,1.0f); animation2.setDuration(4000); animationSet.addAnimation(animation1); animationSet.addAnimation(animation2); LayoutAnimationController layoutAnimationController = new LayoutAnimationController( animationSet,0.5f); layout.setLayoutAnimation(layoutAnimationController); }