SmartGuideActivity.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package kr.co.icontrols.iotplatform;
  2. import android.content.Intent;
  3. import android.os.Bundle;
  4. import android.view.LayoutInflater;
  5. import android.view.MotionEvent;
  6. import android.view.View;
  7. import android.view.animation.AnimationUtils;
  8. import android.widget.CheckBox;
  9. import android.widget.ImageView;
  10. import android.widget.TextView;
  11. import android.widget.ViewFlipper;
  12. import androidx.appcompat.app.AppCompatActivity;
  13. import kr.co.icontrols.iotplatform.utils.SharedPrefUtil;
  14. public class SmartGuideActivity extends AppCompatActivity implements View.OnClickListener {
  15. private CheckBox chkDontShow;
  16. private View indicator1;
  17. private View indicator2;
  18. private View indicator3;
  19. private ViewFlipper mViewFlipper;
  20. private int m_nPreTouchPosX = 0;
  21. @Override
  22. protected void onCreate(Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.activity_smart_guide);
  25. indicator1 = findViewById(R.id.indicator1);
  26. indicator2 = findViewById(R.id.indicator2);
  27. indicator3 = findViewById(R.id.indicator3);
  28. mViewFlipper = findViewById(R.id.viewFlipper);
  29. chkDontShow = findViewById(R.id.chkDontShow);
  30. changeHelpPage();
  31. }
  32. @Override
  33. protected void onResume() {
  34. super.onResume();
  35. }
  36. @Override
  37. public void onClick(View v) {
  38. /*
  39. final View fv = v;
  40. fv.setEnabled(false);
  41. Timer buttonTimer = new Timer();
  42. buttonTimer.schedule(new TimerTask() {
  43. @Override
  44. public void run() {
  45. runOnUiThread(new Runnable() {
  46. @Override
  47. public void run() {
  48. try {
  49. fv.setEnabled(true);
  50. } catch (Exception e) {
  51. e.printStackTrace();
  52. } finally {
  53. }
  54. }
  55. });
  56. }
  57. }, 500);
  58. */
  59. switch (v.getId()) {
  60. case R.id.btnClose:
  61. SharedPrefUtil.putBoolean(SharedPrefUtil.SHOW_SMART_GUIDE,!chkDontShow.isChecked());
  62. Intent intent = new Intent(this, LoginActivity.class);
  63. startActivity(intent);
  64. finish();
  65. break;
  66. }
  67. }
  68. private void changeHelpPage(){
  69. /**
  70. * ViewFlipper에 도움말 페이지 추가.
  71. */
  72. mViewFlipper.removeAllViews();
  73. int main_img[] = {R.drawable.img_smartguide_01,R.drawable.img_smartguide_02,R.drawable.img_smartguide_03};
  74. String main_txtTitle[] = getResources().getStringArray(R.array.list_smart_guide_title);
  75. String main_txtSubTitle[] = getResources().getStringArray(R.array.list_smart_guide_subtitle);
  76. for(int i = 0;i<main_img.length;i++) {
  77. View layoutGuide = LayoutInflater.from(this).inflate(R.layout.layout_guide,null);
  78. ((ImageView)layoutGuide.findViewById(R.id.img)).setImageResource(main_img[i]);
  79. ((TextView)layoutGuide.findViewById(R.id.txtTitle)).setText(main_txtTitle[i]);
  80. ((TextView)layoutGuide.findViewById(R.id.txtSubTitle)).setText(main_txtSubTitle[i]);
  81. mViewFlipper.addView(layoutGuide);
  82. }
  83. mViewFlipper.setOnTouchListener(MyTouchListener);
  84. updateIndicators(mViewFlipper.getDisplayedChild());
  85. }
  86. /**
  87. * 화면에 터치이벤트 추가.
  88. */
  89. View.OnTouchListener MyTouchListener = new View.OnTouchListener()
  90. {
  91. public boolean onTouch(View v, MotionEvent event)
  92. {
  93. if (event.getAction() == MotionEvent.ACTION_DOWN)
  94. {
  95. m_nPreTouchPosX = (int)event.getX();
  96. }
  97. if (event.getAction() == MotionEvent.ACTION_UP)
  98. {
  99. int nTouchPosX = (int)event.getX();
  100. if (nTouchPosX < m_nPreTouchPosX)
  101. {
  102. if(mViewFlipper.getDisplayedChild() < mViewFlipper.getChildCount()-1)
  103. MoveNextView();
  104. }
  105. else if (nTouchPosX > m_nPreTouchPosX)
  106. {
  107. if(mViewFlipper.getDisplayedChild()>0)
  108. MovewPreviousView();
  109. }
  110. m_nPreTouchPosX = nTouchPosX;
  111. }
  112. updateIndicators(mViewFlipper.getDisplayedChild());
  113. return true;
  114. }
  115. };
  116. /**
  117. * 다음 페이지 이동 함수
  118. */
  119. private void MoveNextView()
  120. {
  121. mViewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.appear_from_right));
  122. mViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.disappear_to_left));
  123. mViewFlipper.showNext();
  124. }
  125. /**
  126. * 이전 페이지 이동 함수
  127. */
  128. private void MovewPreviousView()
  129. {
  130. mViewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.appear_from_left));
  131. mViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.disappear_to_right));
  132. mViewFlipper.showPrevious();
  133. }
  134. /**
  135. * 페이지 인디게이터 갱신 함수
  136. * @param position
  137. */
  138. public void updateIndicators(int position) {
  139. switch (position) {
  140. case 0:
  141. indicator1.setBackgroundResource(R.drawable.paging_guide_on);
  142. indicator2.setBackgroundResource(R.drawable.paging_guide_off);
  143. indicator3.setBackgroundResource(R.drawable.paging_guide_off);
  144. break;
  145. case 1:
  146. indicator1.setBackgroundResource(R.drawable.paging_guide_off);
  147. indicator2.setBackgroundResource(R.drawable.paging_guide_on);
  148. indicator3.setBackgroundResource(R.drawable.paging_guide_off);
  149. break;
  150. case 2:
  151. indicator1.setBackgroundResource(R.drawable.paging_guide_off);
  152. indicator2.setBackgroundResource(R.drawable.paging_guide_off);
  153. indicator3.setBackgroundResource(R.drawable.paging_guide_on);
  154. break;
  155. }
  156. }
  157. }