package eVVM.apk.ui.launcher.guide; import android.content.Intent; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.ImageView; import butterknife.BindView; import butterknife.OnClick; import cn.bingoogolapple.bgabanner.BGABanner; import cn.bingoogolapple.bgabanner.BGALocalImageSize; import eVVM.apk.R; import eVVM.apk.common.MyActivity; import eVVM.apk.helper.SPUtils; import eVVM.apk.ui.home.FactorAdminActivity; import eVVM.apk.ui.home.FactoryOperatorActivity; import eVVM.apk.ui.home.HomeActivity; import me.jessyan.autosize.utils.ScreenUtils; public class GuideActivity extends MyActivity { @BindView(R.id.banner_guide_background) BGABanner bannerGuideBackground; @BindView(R.id.btn_guide_enter) Button btnGuideEnter; /*@BindView(R.id.banner_guide_foreground) BGABanner bannerGuideForeground;*/ private int guideRoleId; @Override protected int getLayoutId() { return R.layout.activity_guide; } @Override protected int getTitleId() { return 0; } @Override protected void initView() { Intent in = getIntent(); guideRoleId = in.getIntExtra("guideRoleId", 0); } @Override protected void initData() { processLogic(); setListener(); } private void setListener() { /** * 设置进入按钮和跳过按钮控件资源 id 及其点击事件 * 如果进入按钮和跳过按钮有一个不存在的话就传 0 *//* bannerGuideBackground.setEnterSkipViewIdAndDelegate(R.id.btn_guide_enter, 0, new BGABanner.GuideDelegate() { @Override public void onClickEnterOrSkip() { //gohome(); } });*/ //设置ViewPager的滑动监听,为了滑动到最后一页,继续滑动实现页面的跳转 bannerGuideBackground.getViewPager().setOnTouchListener(new View.OnTouchListener() { private float startX2 = 0; float startX; float endX; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startX = event.getRawX(); break; case MotionEvent.ACTION_UP: if (startX == 0) { startX = startX2; } endX = event.getRawX(); //获取屏幕的宽度 int width = ScreenUtils.getScreenSize(getApplicationContext())[0]; //根据滑动的距离来切换界面 if (bannerGuideBackground.getCurrentItem() == bannerGuideBackground.getItemCount() - 1) { startX2 = 0; if (startX - endX >= (width / 5)) { gohome(); } } break; case MotionEvent.ACTION_MOVE: if (bannerGuideBackground.getCurrentItem() == bannerGuideBackground.getItemCount() - 1 && startX2 == 0) { startX2 = event.getRawX(); } break; } return false; } }); } private void gohome() { switch (guideRoleId) { //根据不同角色 跳转进入不同的页面 只有厂家管理员不需要判断nfc case 2: //医生 startActivityFinish(HomeActivity.class); SPUtils.put("GUIDE_DOCTOR", 1); break; case 3: //医药企业管理员 startActivityFinish(FactorAdminActivity.class); SPUtils.put("GUIDE_ADMIN", 1); break; case 4: //医药企业操作员 if (!checkGpsAndNfc()) { return; } startActivityFinish(FactoryOperatorActivity.class); SPUtils.put("GUIDE_OPERA", 1); break; default: toast("当前版本不支持本角色登录"); break; } } private void processLogic() { // Bitmap 的宽高在 maxWidth maxHeight 和 minWidth minHeight 之间 BGALocalImageSize localImageSize = new BGALocalImageSize(1080, 1920, 320, 640); // 设置数据源 if (guideRoleId == 2) {//根据不同的角色设置不同的引导数据 bannerGuideBackground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP, R.drawable.doctor01, R.drawable.doctor05, R.drawable.doctor03, R.drawable.doctor02, R.drawable.doctor04); } else if (guideRoleId == 3) { bannerGuideBackground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP, R.drawable.admin01, R.drawable.admin02, R.drawable.admin03, R.drawable.admin04); } else if (guideRoleId == 4) { bannerGuideBackground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP, R.drawable.operator01, R.drawable.operator02); } /* bannerGuideForeground.setData(localImageSize, ImageView.ScaleType.CENTER_CROP, R.drawable.uoko_guide_foreground_1, R.drawable.uoko_guide_foreground_2, R.drawable.uoko_guide_foreground_3, R.drawable.uoko_guide_foreground_2);*/ } @Override protected void onResume() { super.onResume(); // 如果引导页主题是透明的,需要在界面可见时给背景 Banner 设置一个白色背景,避免滑动过程中两个 Banner 都设置透明度后能看到 Launcher bannerGuideBackground.setBackgroundResource(android.R.color.white); } @OnClick(R.id.btn_guide_enter) public void onViewClicked() { gohome(); } }