d1988e6b9433cbd665753fcc1bc9298d1a22cb88.svn-base 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. package eVVM.apk.ui.launcher.guide;
  2. import android.content.Intent;
  3. import android.view.MotionEvent;
  4. import android.view.View;
  5. import android.widget.Button;
  6. import android.widget.ImageView;
  7. import butterknife.BindView;
  8. import butterknife.OnClick;
  9. import cn.bingoogolapple.bgabanner.BGABanner;
  10. import cn.bingoogolapple.bgabanner.BGALocalImageSize;
  11. import eVVM.apk.R;
  12. import eVVM.apk.common.MyActivity;
  13. import eVVM.apk.helper.SPUtils;
  14. import eVVM.apk.ui.home.FactorAdminActivity;
  15. import eVVM.apk.ui.home.FactoryOperatorActivity;
  16. import eVVM.apk.ui.home.HomeActivity;
  17. import me.jessyan.autosize.utils.ScreenUtils;
  18. public class GuideActivity extends MyActivity {
  19. @BindView(R.id.banner_guide_background)
  20. BGABanner bannerGuideBackground;
  21. @BindView(R.id.btn_guide_enter)
  22. Button btnGuideEnter;
  23. /*@BindView(R.id.banner_guide_foreground)
  24. BGABanner bannerGuideForeground;*/
  25. private int guideRoleId;
  26. @Override
  27. protected int getLayoutId() {
  28. return R.layout.activity_guide;
  29. }
  30. @Override
  31. protected int getTitleId() {
  32. return 0;
  33. }
  34. @Override
  35. protected void initView() {
  36. Intent in = getIntent();
  37. guideRoleId = in.getIntExtra("guideRoleId", 0);
  38. }
  39. @Override
  40. protected void initData() {
  41. processLogic();
  42. setListener();
  43. }
  44. private void setListener() {
  45. /**
  46. * 设置进入按钮和跳过按钮控件资源 id 及其点击事件
  47. * 如果进入按钮和跳过按钮有一个不存在的话就传 0
  48. *//*
  49. bannerGuideBackground.setEnterSkipViewIdAndDelegate(R.id.btn_guide_enter, 0, new BGABanner.GuideDelegate() {
  50. @Override
  51. public void onClickEnterOrSkip() {
  52. //gohome();
  53. }
  54. });*/
  55. //设置ViewPager的滑动监听,为了滑动到最后一页,继续滑动实现页面的跳转
  56. bannerGuideBackground.getViewPager().setOnTouchListener(new View.OnTouchListener() {
  57. private float startX2 = 0;
  58. float startX;
  59. float endX;
  60. @Override
  61. public boolean onTouch(View v, MotionEvent event) {
  62. switch (event.getAction()) {
  63. case MotionEvent.ACTION_DOWN:
  64. startX = event.getRawX();
  65. break;
  66. case MotionEvent.ACTION_UP:
  67. if (startX == 0) {
  68. startX = startX2;
  69. }
  70. endX = event.getRawX();
  71. //获取屏幕的宽度
  72. int width = ScreenUtils.getScreenSize(getApplicationContext())[0];
  73. //根据滑动的距离来切换界面
  74. if (bannerGuideBackground.getCurrentItem() == bannerGuideBackground.getItemCount() - 1) {
  75. startX2 = 0;
  76. if (startX - endX >= (width / 5)) {
  77. gohome();
  78. }
  79. }
  80. break;
  81. case MotionEvent.ACTION_MOVE:
  82. if (bannerGuideBackground.getCurrentItem() == bannerGuideBackground.getItemCount() - 1 && startX2 == 0) {
  83. startX2 = event.getRawX();
  84. }
  85. break;
  86. }
  87. return false;
  88. }
  89. });
  90. }
  91. private void gohome() {
  92. switch (guideRoleId) { //根据不同角色 跳转进入不同的页面 只有厂家管理员不需要判断nfc
  93. case 2: //医生
  94. startActivityFinish(HomeActivity.class);
  95. SPUtils.put("GUIDE_DOCTOR", 1);
  96. break;
  97. case 3: //医药企业管理员
  98. startActivityFinish(FactorAdminActivity.class);
  99. SPUtils.put("GUIDE_ADMIN", 1);
  100. break;
  101. case 4: //医药企业操作员
  102. if (!checkGpsAndNfc()) {
  103. return;
  104. }
  105. startActivityFinish(FactoryOperatorActivity.class);
  106. SPUtils.put("GUIDE_OPERA", 1);
  107. break;
  108. default:
  109. toast("当前版本不支持本角色登录");
  110. break;
  111. }
  112. }
  113. private void processLogic() {
  114. // Bitmap 的宽高在 maxWidth maxHeight 和 minWidth minHeight 之间
  115. BGALocalImageSize localImageSize = new BGALocalImageSize(1080, 1920, 320, 640);
  116. // 设置数据源
  117. if (guideRoleId == 2) {//根据不同的角色设置不同的引导数据
  118. bannerGuideBackground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP,
  119. R.drawable.doctor01,
  120. R.drawable.doctor05,
  121. R.drawable.doctor03,
  122. R.drawable.doctor02,
  123. R.drawable.doctor04);
  124. } else if (guideRoleId == 3) {
  125. bannerGuideBackground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP,
  126. R.drawable.admin01,
  127. R.drawable.admin02,
  128. R.drawable.admin03,
  129. R.drawable.admin04);
  130. } else if (guideRoleId == 4) {
  131. bannerGuideBackground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP,
  132. R.drawable.operator01,
  133. R.drawable.operator02);
  134. }
  135. /* bannerGuideForeground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP,
  136. R.drawable.uoko_guide_foreground_1,
  137. R.drawable.uoko_guide_foreground_2,
  138. R.drawable.uoko_guide_foreground_3,
  139. R.drawable.uoko_guide_foreground_2);*/
  140. }
  141. @Override
  142. protected void onResume() {
  143. super.onResume();
  144. // 如果引导页主题是透明的,需要在界面可见时给背景 Banner 设置一个白色背景,避免滑动过程中两个 Banner 都设置透明度后能看到 Launcher
  145. bannerGuideBackground.setBackgroundResource(android.R.color.white);
  146. }
  147. @OnClick(R.id.btn_guide_enter)
  148. public void onViewClicked() {
  149. gohome();
  150. }
  151. }