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>