package com.com.mr_wrong.Property_Animation; import android.animation.LayoutTransition; import android.animation.ObjectAnimator; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.GridLayout; import android.widget.LinearLayout; import com.example.mr_wrong.androidstudioproject.R; import butterknife.InjectView; /** * Created by Mr_Wrong on 15/7/3. */ public class myLayoutTransition extends BaseActivity implements CompoundButton.OnCheckedChangeListener { @InjectView(R.id.id_appear) CheckBox idAppear; @InjectView(R.id.id_change_appear) CheckBox idChangeAppear; @InjectView(R.id.id_disappear) CheckBox idDisappear; @InjectView(R.id.id_change_disappear) CheckBox idChangeDisappear; @InjectView(R.id.id_container) LinearLayout viewGroup; private GridLayout mGridlayout; private int mVal; private LayoutTransition mLayoutTransition; @Override public void setContentView() { setContentView(R.layout.mylayouttransition); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); idAppear.setOnCheckedChangeListener(this); idChangeAppear.setOnCheckedChangeListener(this); idDisappear.setOnCheckedChangeListener(this); idChangeDisappear.setOnCheckedChangeListener(this); mGridlayout = new GridLayout(this); mGridlayout.setColumnCount(5); viewGroup.addView(mGridlayout); mLayoutTransition = new LayoutTransition(); mGridlayout.setLayoutTransition(mLayoutTransition); } public void addBtn(View view) { final Button button = new Button(this); button.setText("" + (++mVal)); mGridlayout.addView(button, Math.min(1, mGridlayout.getChildCount())); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mGridlayout.removeView(button); } }); } @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { mLayoutTransition = new LayoutTransition(); // mLayoutTransition.setAnimator(LayoutTransition.APPEARING, (idAppear.isChecked() ? mLayoutTransition.getAnimator(LayoutTransition.APPEARING) : null)); mLayoutTransition.setAnimator(LayoutTransition.APPEARING, (idAppear.isChecked() ? ObjectAnimator.ofFloat(this, "scaleX", 0f, 1.0f) : null)); mLayoutTransition.setAnimator(LayoutTransition.CHANGE_APPEARING, (idChangeAppear.isChecked() ? mLayoutTransition.getAnimator(LayoutTransition.CHANGE_APPEARING) : null)); mLayoutTransition.setAnimator(LayoutTransition.DISAPPEARING, (idDisappear.isChecked() ? ObjectAnimator.ofFloat(this,"scaleY",1.0f,0f) : null)); mLayoutTransition.setAnimator(LayoutTransition.CHANGE_DISAPPEARING, (idChangeDisappear.isChecked() ? mLayoutTransition.getAnimator(LayoutTransition.CHANGE_DISAPPEARING) : null)); mGridlayout.setLayoutTransition(mLayoutTransition); } }