EntyAnimActivity.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package com.xunao.effectdemo.activity;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.view.View;
  6. import android.widget.CheckBox;
  7. import com.xunao.effectdemo.R;
  8. import com.xunao.effectdemo.anim.Anim;
  9. import com.xunao.effectdemo.anim.AnimBaiYeChuang;
  10. import com.xunao.effectdemo.anim.AnimCaChu;
  11. import com.xunao.effectdemo.anim.AnimHeZhuang;
  12. import com.xunao.effectdemo.anim.AnimJieTi;
  13. import com.xunao.effectdemo.anim.AnimLingXing;
  14. import com.xunao.effectdemo.anim.AnimLunZi;
  15. import com.xunao.effectdemo.anim.AnimPiLie;
  16. import com.xunao.effectdemo.anim.AnimQiPan;
  17. import com.xunao.effectdemo.anim.AnimQieRu;
  18. import com.xunao.effectdemo.anim.AnimShanXingZhanKai;
  19. import com.xunao.effectdemo.anim.AnimShiZiXingKuoZhan;
  20. import com.xunao.effectdemo.anim.AnimSuiJiXianTiao;
  21. import com.xunao.effectdemo.anim.AnimXiangNeiRongJie;
  22. import com.xunao.effectdemo.anim.AnimYuanXingKuoZhan;
  23. import com.xunao.effectdemo.view.EnterAnimLayout;
  24. /**
  25. * author : 程中强
  26. * e-mail : 740479946@qq.com
  27. * date : 2022/8/917:02
  28. * desc :
  29. * version: 1.0
  30. */
  31. public class EntyAnimActivity extends Activity implements View.OnClickListener {
  32. private CheckBox mCheckBox;
  33. private EnterAnimLayout enterAnimLayout;
  34. private EnterAnimLayout enterAnimRootView;
  35. @Override
  36. protected void onCreate(Bundle savedInstanceState) {
  37. super.onCreate(savedInstanceState);
  38. setContentView(R.layout.activity_enty_anim);
  39. mCheckBox = (CheckBox) findViewById(R.id.check_box);
  40. enterAnimLayout = (EnterAnimLayout) findViewById(R.id.anim_layout);
  41. enterAnimRootView = (EnterAnimLayout) findViewById(R.id.activity_main);
  42. //打开页面时给anim_layout播放百叶窗效果
  43. new Handler().postDelayed(new Runnable() {
  44. @Override
  45. public void run() {
  46. Anim anim = new AnimBaiYeChuang(enterAnimLayout);
  47. anim.startAnimation();
  48. }
  49. }, 1000);
  50. findViewById(R.id.btn_baiyechuang).setOnClickListener(this);
  51. findViewById(R.id.btn_cachu).setOnClickListener(this);
  52. findViewById(R.id.btn_hezhuang).setOnClickListener(this);
  53. findViewById(R.id.btn_jieti).setOnClickListener(this);
  54. findViewById(R.id.btn_lingxing).setOnClickListener(this);
  55. findViewById(R.id.btn_lunzi).setOnClickListener(this);
  56. findViewById(R.id.btn_pilie).setOnClickListener(this);
  57. findViewById(R.id.btn_qipan).setOnClickListener(this);
  58. findViewById(R.id.btn_qieru).setOnClickListener(this);
  59. findViewById(R.id.btn_shanxingzhankai).setOnClickListener(this);
  60. findViewById(R.id.btn_shizixingkuozhan).setOnClickListener(this);
  61. findViewById(R.id.btn_suijixiantiao).setOnClickListener(this);
  62. findViewById(R.id.btn_xiangneirongjie).setOnClickListener(this);
  63. findViewById(R.id.btn_yuanxingkuozhan).setOnClickListener(this);
  64. }
  65. @Override
  66. public void onClick(View view) {
  67. Anim anim1 =null;
  68. Anim anim2 =null;
  69. EnterAnimLayout view1 = enterAnimLayout;
  70. EnterAnimLayout view2 = (EnterAnimLayout) view.getParent();
  71. //如果选中了checkbox,则播放整个页面,把activity的根view赋给view1,否则 view1为anim_layout
  72. if (mCheckBox.isChecked()) {
  73. view1 = enterAnimRootView;
  74. }
  75. switch (view.getId()) {
  76. case R.id.btn_baiyechuang:
  77. anim1 = new AnimBaiYeChuang(view1);
  78. anim2 = new AnimBaiYeChuang(view2);
  79. break;
  80. case R.id.btn_cachu:
  81. anim1 = new AnimCaChu(view1);
  82. anim2 = new AnimCaChu(view2);
  83. break;
  84. case R.id.btn_hezhuang:
  85. anim1 = new AnimHeZhuang(view1);
  86. anim2 = new AnimHeZhuang(view2);
  87. break;
  88. case R.id.btn_jieti:
  89. anim1 = new AnimJieTi(view1);
  90. anim2 = new AnimJieTi(view2);
  91. break;
  92. case R.id.btn_lingxing:
  93. anim1 = new AnimLingXing(view1);
  94. anim2 = new AnimLingXing(view2);
  95. break;
  96. case R.id.btn_lunzi:
  97. anim1 = new AnimLunZi(view1);
  98. anim2 = new AnimLunZi(view2);
  99. break;
  100. case R.id.btn_pilie:
  101. anim1 = new AnimPiLie(view1);
  102. anim2 = new AnimPiLie(view2);
  103. break;
  104. case R.id.btn_qipan:
  105. anim1 = new AnimQiPan(view1);
  106. anim2 = new AnimQiPan(view2);
  107. break;
  108. case R.id.btn_qieru:
  109. anim1 = new AnimQieRu(view1);
  110. anim2 = new AnimQieRu(view2);
  111. break;
  112. case R.id.btn_shanxingzhankai:
  113. anim1 = new AnimShanXingZhanKai(view1);
  114. anim2 = new AnimShanXingZhanKai(view2);
  115. break;
  116. case R.id.btn_shizixingkuozhan:
  117. anim1 = new AnimShiZiXingKuoZhan(view1);
  118. anim2 = new AnimShiZiXingKuoZhan(view2);
  119. break;
  120. case R.id.btn_suijixiantiao:
  121. anim1 = new AnimSuiJiXianTiao(view1);
  122. anim2 = new AnimSuiJiXianTiao(view2);
  123. break;
  124. case R.id.btn_xiangneirongjie:
  125. anim1 = new AnimXiangNeiRongJie(view1);
  126. anim2 = new AnimXiangNeiRongJie(view2);
  127. break;
  128. case R.id.btn_yuanxingkuozhan:
  129. anim1 = new AnimYuanXingKuoZhan(view1);
  130. anim2 = new AnimYuanXingKuoZhan(view2);
  131. break;
  132. }
  133. //如果选中了checkbox,则只播放anim1,anim1绑定的view为view1,view1之前赋值为acitivity的根view
  134. //否则播放anim_layout和当前button的动画
  135. //参数为动画播放总时间
  136. if (mCheckBox.isChecked()) {
  137. anim1.startAnimation(2000);
  138. } else {
  139. anim1.startAnimation(2000);
  140. anim2.startAnimation(2000);
  141. }
  142. }
  143. }