欢迎页面的延时跳转 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();
}
}