Android软件欢迎页,viewPager页卡循环的具体详解
Android软件欢迎页,viewPager页卡循环的具体详解
淘幻幻 发表于2年前
Android软件欢迎页,viewPager页卡循环的具体详解
  • 发表于 2年前
  • 阅读 45
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 大众点评手机客户端 软件欢迎页,viewPager页卡循环的具体详解

欢迎页面的延时跳转  1.Hander实现延时跳转 2.使用定时器定时执行任务

1.跳转到导航页卡页面  1.ViewPager的使用 2.适配器的使用

2.跳转到欢迎页面  

3.跳转到首页

欢迎页面

使用定时器进行延时

public class WelcomeStartAct extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_welcome_start);
		Timer timer = new Timer();
		timer.schedule(new Task(), 3000);// (匿名对象)方法,定时器延时执行的的方法

	}

	// 内部相当于封装了对象
	class Task extends TimerTask {

		public void run() {
			// 实现页面的跳转 进行判断 是否是第一次跳转
			if (ShareUtils.getWelcomeBoolean(getBaseContext())) {
				startActivity(new Intent(getApplicationContext(), MainActivity.class));

			} else {
				startActivity(new Intent(getApplicationContext(), WelcomeGuideAct.class));
				ShareUtils.putWelcomeBoolean(getBaseContext(), true);
			}
			// getApplicationContext():生命周期是整个应用,应用摧毁,它才摧毁。
			finish();
		}
	}

}

// 延时跳转使用Hander (Hander延时发送接收消息)
		// new Handler(new Callback() {
		// //三秒后去处理接收到的消息的方法
		// public boolean handleMessage(Message msg) {
		// //实现页面跳转
		// startActivity(new Intent(WelcomeStartAct.this,MainActivity.class));
		// return false;
		// }
		// }).sendEmptyMessageDelayed(0, 3000);//延时多少秒进行发送

		// 使用java中定时器来进行延时发送

使用Hander延时发送消息

导航页卡页面

ViewPager自定义使用详解http://blog.csdn.net/lmj623565791/article/details/40411921

public class WelcomeGuideAct extends Activity {

	private ViewPager welcome_pager;
	private Button getInto;
	// 创建动态数组集合
	private int[] mImgIds = new int[] { R.drawable.guide_01, R.drawable.guide_02, R.drawable.guide_03 };
	private List<ImageView> mImageView = new ArrayList<ImageView>();

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_welcome_guide);
		welcome_pager = (ViewPager) findViewById(R.id.welcome_pager);
		getInto = (Button) findViewById(R.id.welcome_guide_btn);
		initViewPager();
	}

	// 进入主页面的方法
	public void getInto(View view) {
		Intent i = new Intent(WelcomeGuideAct.this, MainActivity.class);
		startActivity(i);
		finish();//结束当前页面 防止后退

	}

	// 初始化ViewPager的方法
	@SuppressWarnings("deprecation")
	public void initViewPager() {

		for (int imgId : mImgIds) {
			ImageView imageView = new ImageView(getApplicationContext());
			imageView.setScaleType(ScaleType.CENTER_CROP);
			imageView.setImageResource(imgId);
			mImageView.add(imageView);
		}
		welcome_pager.setAdapter(new MyPagerAdapter());

		// 对页卡ViewPager滑动进行监听
		welcome_pager.setOnPageChangeListener(new OnPageChangeListener() {

			// 页卡被选中的方法
			public void onPageSelected(int arg0) {
				if (arg0 == 2) {// 从0开始算起
					getInto.setVisibility(View.VISIBLE);

				} else {
					getInto.setVisibility(View.GONE);
				}
			}

			//页面滚动时
			public void onPageScrolled(int arg0, float arg1, int arg2) {

			}

			//
			public void onPageScrollStateChanged(int arg0) {

			}
		});

	}

	// 定义ViewPager的适配器
	public class MyPagerAdapter extends PagerAdapter {

		// 计算需要多少个Item进行显示
		public int getCount() {
			return mImgIds.length;
		}

		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}

		// 重写初始化items实例的方法
		public Object instantiateItem(ViewGroup container, int position) {
			container.addView(mImageView.get(position));// 通过索引位置拿到图片,添加到viewPage人上
			return mImageView.get(position);
		}

		// 滑动时销毁的方法
		public void destroyItem(ViewGroup container, int position, Object object) {
			// 将滑动过去的页卡销毁掉将viewPager的对象进行移除
			container.removeView(mImageView.get(position));
		}
	}
}


判断是否为第一次进入的方法类

/**
 * 实现标记的写入与读取
 *
 */
public class ShareUtils {
	private static final String FILE_NAME = "dingping";
	private static final String MODE_NAME = "welcome";

	public static boolean getWelcomeBoolean(Context context) {
		// 读取一个Boolen标记的值,如果存在
		return context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE).getBoolean(MODE_NAME, false);
	}

	// 写入Boolean类型的值
	public static void putWelcomeBoolean(Context context, boolean isFirst) {
		Editor editor = context.getSharedPreferences(FILE_NAME, Context.MODE_APPEND).edit();
		editor.putBoolean(MODE_NAME, isFirst);
		editor.commit();
	}
}

 源代码:http://pan.baidu.com/s/1nup368h


共有 人打赏支持
粉丝 3
博文 55
码字总数 30103
×
淘幻幻
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: