说明:
ViewPager简单实现,方便以后用。做的是一个全屏的引导页。
截图:
代码:
GuideActivity.java
package com.xinyan.personal.ui.activity; import android.content.Intent; import android.gesture.GestureUtils; import android.os.Bundle; import android.os.CountDownTimer; import android.support.annotation.Nullable; import android.support.v4.view.ViewPager; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.xinyan.personal.MainActivity; import com.xinyan.personal.R; import com.xinyan.personal.adapter.GuideAdapter; import com.xinyan.personal.util.SPUtils; import com.xinyan.personal.util.UiUtil; import java.util.ArrayList; import java.util.List; /** * 引导页 * Created by zst on 2017/8/2. */ public class GuideActivity extends BaseActivity implements ViewPager.OnPageChangeListener, View.OnClickListener{ private ViewPager vp_guide; private TextView tv_skip; private TextView tv_begin; private ImageView iv_dot_0; private ImageView iv_dot_1; private ImageView iv_dot_2; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guide); vp_guide = (ViewPager) findViewById(R.id.vp_guide); tv_skip = (TextView) findViewById(R.id.tv_skip); tv_begin = (TextView) findViewById(R.id.tv_begin); iv_dot_0 = (ImageView) findViewById(R.id.iv_dot_0); iv_dot_1 = (ImageView) findViewById(R.id.iv_dot_1); iv_dot_2 = (ImageView) findViewById(R.id.iv_dot_2); tv_skip.setOnClickListener(this); tv_begin.setOnClickListener(this); initBanner(); countDownTimer(); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.tv_begin: SPUtils.setParam(GuideActivity.this, SPUtils.GUIDE_STATUS, true); startActivity(new Intent(GuideActivity.this, MainActivity.class)); finish(); break; case R.id.tv_skip: SPUtils.setParam(GuideActivity.this, SPUtils.GUIDE_STATUS, true); startActivity(new Intent(GuideActivity.this, MainActivity.class)); finish(); break; } } //初始化三张引导页 private void initBanner() { List<Integer> images = new ArrayList<>(); images.add(R.drawable.pic_guide_0); images.add(R.drawable.pic_guide_1); images.add(R.drawable.pic_guide_2); GuideAdapter guideAdapter = new GuideAdapter(GuideActivity.this, images); vp_guide.setAdapter(guideAdapter); vp_guide.addOnPageChangeListener(this); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { setDefalutDot(); if(position == 0) { iv_dot_0.setImageResource(R.drawable.ic_ad_dot_check); } if(position == 1) { iv_dot_1.setImageResource(R.drawable.ic_ad_dot_check); } if(position == 2) { iv_dot_2.setImageResource(R.drawable.ic_ad_dot_check); tv_begin.setVisibility(View.VISIBLE); } } @Override public void onPageScrollStateChanged(int state) { } //设置默认的dot private void setDefalutDot() { tv_begin.setVisibility(View.GONE); iv_dot_0.setImageResource(R.drawable.ic_ad_dot_default); iv_dot_1.setImageResource(R.drawable.ic_ad_dot_default); iv_dot_2.setImageResource(R.drawable.ic_ad_dot_default); } /** * 5秒倒计时; */ public void countDownTimer() { CountDownTimer timer = new CountDownTimer(5000, 1000) { @Override public void onTick(long millisUntilFinished) { tv_skip.setText("跳过" + millisUntilFinished / 1000); tv_skip.setEnabled(false); } @Override public void onFinish() { tv_skip.setText("跳过"); tv_skip.setEnabled(true); } }; timer.start(); } }
activity_guide.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/bg_efeff4" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/vp_guide" android:layout_width="match_parent" android:layout_height="match_parent"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="20dp" android:orientation="vertical"> <TextView android:id="@+id/tv_begin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:background="@drawable/shape_btn_guide_use" android:text="申请试用" android:textColor="@color/white" android:visibility="gone"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp"> <ImageView android:id="@+id/iv_dot_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_ad_dot_check"/> <ImageView android:id="@+id/iv_dot_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:src="@drawable/ic_ad_dot_default"/> <ImageView android:id="@+id/iv_dot_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:src="@drawable/ic_ad_dot_default"/> </LinearLayout> </LinearLayout> <TextView android:id="@+id/tv_skip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:background="@drawable/shape_btn_guide_second" android:layout_margin="20dp" android:paddingTop="5dp" android:paddingBottom="5dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:clickable="false" android:textSize="11sp" android:text="跳过 5" android:textColor="@color/white"/> </RelativeLayout> </LinearLayout>
GuideAdapter.javapackage com.xinyan.personal.adapter; import android.content.Context; import android.content.Intent; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.bumptech.glide.Glide; import com.xinyan.personal.R; import com.xinyan.personal.httpManager.response.NoticeListResponse; import com.xinyan.personal.ui.activity.MsgDetailActivity; import java.util.List; import java.util.Map; /** * 引导页配器 * Created by zst on 2017/8/2. */ public class GuideAdapter extends PagerAdapter { Context context; List<Integer> viewLists; public GuideAdapter(Context context, List<Integer> lists) { this.viewLists = lists; this.context = context; } @Override public int getCount() { //获得size return viewLists.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup view, int position, Object object) { //销毁Item } @Override public Object instantiateItem(ViewGroup view, int position){ //实例化Item ImageView imageView = new ImageView(context); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( ViewPager.LayoutParams.MATCH_PARENT,ViewPager.LayoutParams.MATCH_PARENT); imageView.setLayoutParams(params); imageView.setScaleType(ImageView.ScaleType.CENTER); Glide.with(context) .load(viewLists.get(position)) .into(imageView); view.addView(imageView); return imageView; } }