MainActivity如下:
package cc.test; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; /** * Demo描述: * 布局变化时动画效果的现实(一) * 在此主要是测试布局中的animateLayoutChanges属性 * 当布局发生变化时展示一个动画,不至于切换效果太生硬. * * 示例描述: * 点击TextView时为线性布局添加按钮. * 为了使添加按钮的时候有动画效果,我们给线性布局设置了属性 * android:animateLayoutChanges="true" * 在往布局中添加View时就会有默认的动画效果 * * 当然这仅仅是一个默认的动画效果.如果我们需要自定义动画效果,那么 * 就需要用到属性动画,可以参见下一篇文章布局变化时动画效果的现实(二) * * 参考资料: * 1 http://developer.android.com/training/animation/layout.html * 2 http://blog.csdn.net/think_soft/article/details/12417107 * Thank you very much */ public class TestAnimateLayoutChangesActivity extends Activity { private LinearLayout mRootLinearLayout; private Context mContext; private TextView mTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mContext=this; mRootLinearLayout=(LinearLayout) findViewById(R.id.rootLinearLayout); mTextView=(TextView) findViewById(R.id.textView); mTextView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Button button=new Button(mContext); button.setText("button"); mRootLinearLayout.addView(button); } }); } }
main.xml如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rootLinearLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:animateLayoutChanges="true"> <TextView android:id="@+id/textView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="测试布局中的animateLayoutChanges属性\n注意测试环境为Android4.0" /> </LinearLayout>