package com.tejia.lijin.app.ui.guidepages;
|
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.Color;
|
import android.graphics.drawable.GradientDrawable;
|
import android.os.Build;
|
import android.os.Bundle;
|
import androidx.annotation.Nullable;
|
import androidx.viewpager.widget.PagerAdapter;
|
import androidx.viewpager.widget.ViewPager;
|
import android.util.DisplayMetrics;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.ImageView;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ui.main.MainActivity;
|
import com.tejia.lijin.app.util.ToolUtil;
|
|
import java.lang.reflect.Field;
|
import java.util.ArrayList;
|
|
/**
|
* 1.5.4引导页 首页(热销榜单-天天抽奖)-> 品牌返利 -> 动态(动态分享)-> 我的(订单)
|
* 开屏页引导(2019/7/2)
|
*/
|
public class GuidePages extends Activity implements View.OnClickListener {
|
private ViewPager pager;
|
private TextView guidepages_next;//立即体验
|
private TextView guidepages_skip;//跳过
|
|
private int guid = 0;
|
private SharedPreferences sp;
|
private GuidePagesAdapter adapter;
|
//引导页 图片地址
|
private ArrayList<Integer> list = new ArrayList<>();
|
private int mWidth = 0; // 屏幕宽度(像素)
|
private int mHeight = 0; // 屏幕高度(像素)
|
|
@Override
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.guidepages);
|
guid = getIntent().getIntExtra("guid", -1);
|
|
pager = findViewById(R.id.guidepages_viewpager);
|
guidepages_next = findViewById(R.id.guidepages_next);
|
guidepages_skip = findViewById(R.id.guidepages_skip);
|
sp = getSharedPreferences("guide", MODE_PRIVATE);//引导页 记录
|
//设置状态栏
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
Window window = getWindow();
|
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
|
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
window.setStatusBarColor(Color.TRANSPARENT);
|
//设置状态栏文字颜色及图标为深色
|
// window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
try {
|
Class decorViewClazz = Class.forName("com.android.internal.policy.DecorView");
|
Field field = decorViewClazz.getDeclaredField("mSemiTransparentStatusBarColor");
|
field.setAccessible(true);
|
field.setInt(getWindow().getDecorView(), Color.TRANSPARENT); //改为透明
|
} catch (Exception e) {
|
}
|
}
|
}
|
//传入参数失败
|
if (guid == -1) {
|
setfinish();
|
} else {
|
//开屏引导页 打开过 记录为1 如有需求再次显示修改为2
|
if (sp.getInt("guidepage", 0) == 1) {
|
setfinish();
|
}
|
}
|
DisplayMetrics metric = new DisplayMetrics();
|
getWindowManager().getDefaultDisplay().getMetrics(metric);
|
mWidth = metric.widthPixels; // 屏幕宽度(像素)
|
mHeight = metric.heightPixels; // 屏幕高度(像素)
|
// 华为:2137*1080
|
// vivo:1280*720
|
// ViewGroup.LayoutParams para1 = guidepages_img.getLayoutParams();
|
// para1.height = (int) (height / 1.7);
|
// para1.width = (int) (width / 1.5);
|
// guidepages_img.setLayoutParams(para1);
|
Log.e("eee", "width: " + mWidth + "-height: " + mHeight);
|
|
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) guidepages_next.getLayoutParams();
|
if (this.mHeight > 1920) {
|
lp.bottomMargin = (int) (this.mHeight / 20);
|
} else if (this.mHeight > 1280 && this.mHeight <= 1920) {
|
lp.bottomMargin = (int) (this.mHeight / 23);
|
} else {
|
if (this.mHeight <= 0 || this.mHeight < 800) {
|
lp.bottomMargin = 26;
|
} else {
|
lp.bottomMargin = (int) (this.mHeight / 26);
|
}
|
}
|
|
guidepages_next.setLayoutParams(lp);
|
//设置 跳过的背景色
|
GradientDrawable p = (GradientDrawable) guidepages_skip.getBackground();
|
p.setColor(Color.parseColor("#FFD8E8"));
|
|
guidepages_next.setOnClickListener(this);
|
guidepages_skip.setOnClickListener(this);
|
// list.add(R.drawable.img_guidepage1);
|
list.add(R.drawable.img_guidepage2);
|
list.add(R.drawable.img_guidepage3);
|
adapter = new GuidePagesAdapter();
|
pager.setAdapter(adapter);
|
//滑动监听
|
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
@Override
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
if (position == list.size()-1) {
|
guidepages_next.setVisibility(View.VISIBLE);
|
// guidepages_skip.setVisibility(View.GONE);
|
} else {
|
guidepages_next.setVisibility(View.GONE);
|
// guidepages_skip.setVisibility(View.VISIBLE);
|
}
|
}
|
|
@Override
|
public void onPageSelected(int position) {
|
if (position == list.size()-1) {
|
guidepages_skip.setVisibility(View.GONE);
|
} else {
|
guidepages_skip.setVisibility(View.VISIBLE);
|
}
|
}
|
|
@Override
|
public void onPageScrollStateChanged(int state) {
|
|
}
|
});
|
}
|
|
/**
|
* 设置控件的 layoutparams
|
*
|
* @param mbar 是否添加底部导航栏高度
|
*/
|
private void setLayouParams(View view, int height, boolean mbar) {
|
int ighe = 16;
|
if (height != 0) {
|
ighe = height;
|
}
|
|
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) view.getLayoutParams();
|
if (this.mHeight >= 1720) {
|
lp.bottomMargin = (int) (this.mHeight / ighe);
|
} else if (this.mHeight >= 1080 && this.mHeight < 1720) {
|
lp.bottomMargin = (int) (this.mHeight / ighe + 5);
|
} else if (mHeight >= 900 && (mHeight) < 1080) {
|
lp.bottomMargin = (int) (this.mHeight / ighe + 8);
|
} else {
|
if (this.mHeight <= 0 || this.mHeight < 800) {
|
lp.bottomMargin = 30;
|
} else {
|
lp.bottomMargin = (int) (this.mHeight / (ighe + 11));
|
}
|
}
|
//有导航栏 加上导航栏高度
|
if (ToolUtil.checkDeviceHasNavigationBar(this) && mbar) {
|
lp.bottomMargin += (ToolUtil.getVirtualBarHeigh(this) - 50);
|
}
|
view.setLayoutParams(lp);
|
}
|
|
/**
|
* viewpager 适配器
|
*/
|
class GuidePagesAdapter extends PagerAdapter {
|
|
@Override
|
public int getCount() {
|
return list.size();
|
}
|
|
@Override
|
public boolean isViewFromObject(View view, Object object) {
|
return view == object;
|
}
|
|
@Override
|
public void destroyItem(ViewGroup container, int position, Object object) {
|
container.removeView((View) object);
|
}
|
|
@Override
|
public Object instantiateItem(ViewGroup container, int position) {
|
// ImageView imageView = new ResizableImageView(GuidePages.this);
|
// container.addView(imageView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
// imageView.setBackground(getResources().getDrawable(list.get(position)));
|
View view = LayoutInflater.from(GuidePages.this).inflate(R.layout.item_guidepages_big, container, false);
|
ImageView guidepages_img = view.findViewById(R.id.guidepages_img);//引导图
|
ImageView guidepages_img2 = view.findViewById(R.id.guidepages_img2);//滚动条
|
|
// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
// params.setMargins(0, 0, 0, 18);
|
// guidepages_img.setLayoutParams(params);
|
|
ViewGroup.LayoutParams para1 = guidepages_img.getLayoutParams();
|
int bar = 0;
|
//有导航栏 加上导航栏高度
|
// if (ToolUtil.checkDeviceHasNavigationBar(pager.getContext())) {
|
// bar = ToolUtil.getVirtualBarHeigh(pager.getContext());
|
// }
|
if ((mHeight + bar) >= 1920) {
|
para1.height = (int) ((mHeight + bar) / 1.35);
|
para1.width = (int) (mWidth / 1.15);
|
} else if ((mHeight + bar) >= 1280 && (mHeight + bar) < 1920) {
|
para1.height = (int) ((mHeight + bar) / 1.55);
|
para1.width = (int) (mWidth / 1.35);
|
} else if ((mHeight + bar) >= 1080 && (mHeight + bar) < 1280) {
|
para1.height = (int) ((mHeight + bar) / 1.58);
|
para1.width = (int) (mWidth / 1.38);
|
} else {
|
para1.height = (int) ((mHeight + bar) / 1.6);
|
para1.width = (int) (mWidth / 1.4);
|
}
|
|
guidepages_img.setLayoutParams(para1);//设置引导图大小
|
Glide.with(GuidePages.this).load(list.get(position)).into(guidepages_img);
|
|
|
TextView guidepages_txt1 = view.findViewById(R.id.guidepages_txt1);
|
TextView guidepages_txt2 = view.findViewById(R.id.guidepages_txt2);
|
setLayouParams(guidepages_img2, 0, false);
|
guidepages_img2.setVisibility(View.VISIBLE);
|
if (position == 0) {
|
guidepages_txt1.setText("购物前 先领券");
|
guidepages_txt2.setText("智能搜索");
|
Glide.with(GuidePages.this).load(R.drawable.img_guidepage11).into(guidepages_img2);
|
} else if (position == 1) {
|
guidepages_txt1.setText("返利叠加 现金补贴");
|
guidepages_txt2.setText("奖励券");
|
Glide.with(GuidePages.this).load(R.drawable.img_guidepage22).into(guidepages_img2);
|
} else if (position == 2) {
|
guidepages_txt1.setText("至尊特权 九大权益");
|
guidepages_txt2.setText("成为会员");
|
guidepages_img2.setVisibility(View.GONE);
|
}
|
setLayouParams(guidepages_txt1, 8, true);
|
setLayouParams(guidepages_txt2, 45, false);
|
container.addView(view);
|
return view;
|
}
|
}
|
|
/**
|
* 关闭页面
|
*/
|
private void setfinish() {
|
startActivity(new Intent(this, MainActivity.class));
|
finish();
|
// overridePendingTransition(R.anim.slide_out_down, R.anim.slide_out_down);
|
// 淡出动画
|
overridePendingTransition(0, R.anim.slide_out_down);
|
//淡入动画
|
// overridePendingTransition(R.anim.slide_out_up, 0);
|
}
|
|
/**
|
* 根据手机的分辨率PX(像素)转成DP
|
*
|
* @param pxValue
|
* @return
|
*/
|
public int px2dip(float pxValue) {
|
final float scale = getResources().getDisplayMetrics().density;
|
return (int) (pxValue / scale + 0.5f);
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
//立即体验
|
case R.id.guidepages_next:
|
ShowPages(1);
|
break;
|
//跳过
|
case R.id.guidepages_skip:
|
ShowPages(2);
|
break;
|
default:
|
break;
|
}
|
}
|
|
/**
|
* 按钮点击
|
*
|
* @param id
|
*/
|
private void ShowPages(int id) {
|
switch (id) {
|
case 1://知道了
|
setguidepages();
|
break;
|
case 2://跳过
|
|
setguidepages();
|
break;
|
default:
|
setfinish();
|
break;
|
}
|
}
|
|
/**
|
* 记录 开屏引导页
|
*/
|
private void setguidepages() {
|
SharedPreferences.Editor editor = sp.edit();
|
editor.putInt("guidepage", 1);
|
editor.commit();
|
setfinish();
|
}
|
//下面是以前记录的 首页 动态 我的 引导页记录
|
// if (!sp.getBoolean("mine", false)) {
|
// if (!sp.getBoolean("trends", false)) {
|
// if (!sp.getBoolean("home", false)) {
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
guidepages_next = null;//知道了
|
guid = 0;
|
if (list != null) {
|
list.clear();
|
}
|
sp = null;
|
adapter = null;
|
pager = null;
|
}
|
}
|