Android布局变化时动画效果的现实(二)

简介: MainActivity如下: package wy.test;import android.animation.AnimatorInflater;import android.

MainActivity如下:

package wy.test;

import android.animation.AnimatorInflater;
import android.animation.LayoutTransition;
import android.animation.ObjectAnimator;
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描述:
 * 布局变化时动画效果的现实(二)
 * 当布局发生变化时展示一个动画,不至于切换效果太生硬.
 * 当然类似的还可以设置布局变化的不同时刻的动画,一共有四种:
 * LayoutTransition.APPEARING,LayoutTransition.CHANGE_APPEARING,
 * LayoutTransition.CHANGE_DISAPPEARING,LayoutTransition.DISAPPEARING
 * 
 * 
 * 参考资料:
 * 1 http://blog.csdn.net/alrdy/article/details/7836963
 * 2 http://www.cnblogs.com/mengdd/p/3305973.html
 * 3 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 addedButton=new Button(mContext);
				addedButton.setText("Button");
				//属性动画ObjectAnimator
				ObjectAnimator objectAnimator=(ObjectAnimator)AnimatorInflater.loadAnimator(mContext, R.animator.scalexanimator); 
				objectAnimator.setTarget(addedButton);
				LayoutTransition layoutTransition=new LayoutTransition();
				//指定为新加View出现时展示动画
		    	layoutTransition.setAnimator(LayoutTransition.APPEARING, objectAnimator);
		    	//为布局添加LayoutTransition
		    	mRootLinearLayout.setLayoutTransition(layoutTransition);
				mRootLinearLayout.addView(addedButton);
			}
		});
    }
}

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="wrap_content"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
   
   >

    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="测试布局中的animateLayoutChanges属性\n注意测试环境为Android4.0" />

</LinearLayout>

scalexanimator.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:propertyName="scaleX"
    android:duration="3000"
    android:valueFrom="1.0"
    android:valueTo="0.5"
     >
</objectAnimator>


相关文章
|
4月前
|
Android开发
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
134 0
|
4月前
|
Android开发 容器
Android开发,学习LinearLayout布局
Android开发,学习LinearLayout布局
39 0
|
4月前
|
API Android开发 开发者
【Android App】Vulkan实现宇宙中旋转雷达动画效果(附源码和原始视频 超详细必看)
【Android App】Vulkan实现宇宙中旋转雷达动画效果(附源码和原始视频 超详细必看)
69 1
|
4月前
|
XML Java Android开发
Android App开发动画特效之实现百叶窗动画和马赛克动画效果实战演示(附源码和演示视频 可直接使用)
Android App开发动画特效之实现百叶窗动画和马赛克动画效果实战演示(附源码和演示视频 可直接使用)
77 0
|
4月前
|
XML Java Android开发
Android App开发中补间动画的讲解以及实现钟摆动画效果实战(附源码 简单易懂 可直接使用)
Android App开发中补间动画的讲解以及实现钟摆动画效果实战(附源码 简单易懂 可直接使用)
29 0
Android App开发中补间动画的讲解以及实现钟摆动画效果实战(附源码 简单易懂 可直接使用)
|
4月前
|
XML Java Android开发
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
44 0
|
4月前
|
XML Java Android开发
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
63 0
|
4月前
|
Android开发 容器
Android开发第二次课 布局方式
Android开发第二次课 布局方式
24 0
|
6月前
|
XML 前端开发 Android开发
android 前端常用布局文件升级总结(一)
android 前端常用布局文件升级总结(一)
|
8月前
|
Android开发
Android 使用DataBinding时 将布局页面转换为数据绑定布局(Convert to data binding layout) 不出现提示解决办法
Android 使用DataBinding时 将布局页面转换为数据绑定布局(Convert to data binding layout) 不出现提示解决办法
94 0