首页 加入收藏

Android应用中的开机引导界面——用ViewPager实现

2015年08月12日 11:49供稿中心: 课工场
摘要:在一个项目里用到的,总结出来!开机引导界面目前我知道的有两种实现方式:第一,通过ViewPager来实现 ;第二,通过 ViewFlipper来实现。

这篇文章中,只介绍第一种实现方式 ViewPager , 第二种方式将会在下一篇博文中介绍;
ViewPager 组件是在Android 11以后才出来的一个组件,位于:android-support-v4.jar 中,因此使用时需要进入此包。
第一步:在配置文件中,引入ViewPager ,代码如下:

  1. <font face="宋体" size="3"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  

  2.     xmlns:tools="http://schemas.android.com/tools"  

  3.     android:layout_width="match_parent"  

  4.     android:layout_height="match_parent"  

  5.     tools:context=".MainActivity" >  

  6.   

  7.     <android.support.v4.view.ViewPager  

  8.         android:id="@+id/pager"  

  9.         android:layout_width="match_parent"  

  10.         android:layout_height="match_parent"  

  11.         />  

  12.   

  13. </RelativeLayout>  </font>

复制代码
  1. <font face="宋体" size="3">package com.zhanggeng.guider;  

  2.   

  3. import java.util.ArrayList;  

  4.   

  5. import android.app.Activity;  

  6. import android.content.Context;  

  7. import android.content.SharedPreferences;  

  8. import android.os.Bundle;  

  9. import android.support.v4.view.PagerAdapter;  

  10. import android.support.v4.view.ViewPager;  

  11. import android.view.Menu;  

  12. import android.view.View;  

  13. import android.view.ViewGroup;  

  14. import android.view.ViewGroup.LayoutParams;  

  15. import android.view.Window;  

  16. import android.widget.ImageView;  

  17. import android.widget.ImageView.ScaleType;  

  18.   

  19. import com.zhanggeng.myutil.dialogtool.DialogTool;  

  20.   

  21. public class MainActivity extends Activity {  

  22.   

  23.     //Viewpager对象  

  24.     private ViewPager viewPager;  

  25.     //ViewPager适配器对象  

  26.     private GuiderPagerAdapter adapter;  

  27.     //SharedPreferences 用来判断是否是第一次登陆,第一次登陆则显示引导界面,否则直接进入。  

  28.     private SharedPreferences pre;  

  29.     private SharedPreferences.Editor editor;  

  30.     //判断标记  

  31.     private boolean isFirst;  

  32.     Context context = this;  

  33.     @Override  

  34.     protected void onCreate(Bundle savedInstanceState) {  

  35.         super.onCreate(savedInstanceState);  

  36.         //设置无标题  

  37.         requestWindowFeature(Window.FEATURE_NO_TITLE);  

  38.         //设置SharedPreferences   

  39.         pre = getSharedPreferences("isFirst", MODE_WORLD_WRITEABLE);  

  40.         isFirst = pre.getBoolean("isFirst", true);  

  41.         if(isFirst){  

  42.             //如果是第一次登陆,则初始化,引导界面  

  43.             initView();  

  44.         }else{  

  45.             //否则直接进入  

  46.             gotoLoginActivity();  

  47.         }  

  48.     }  

  49.     private void initView() {  

  50.         //加载程序布局界面  

  51.         setContentView(R.layout.activity_main);  

  52.         //为程序设置是否第一次登入的标记  

  53.         saveTag();  

  54.           

  55.         viewPager = (ViewPager) findViewById(R.id.pager);  

  56.         adapter = new GuiderPagerAdapter();  

  57.         //初始化每一个页面  

  58.         ImageView v1 = new ImageView(this);  

  59.         v1.setLayoutParams(new LayoutParams(1, -1));  

  60.         v1.setScaleType(ScaleType.FIT_XY);  

  61.         v1.setImageResource(R.drawable.guild1);  

  62.         adapter.views.add(v1);  

  63.           

  64.         ImageView v2 = new ImageView(this);  

  65.         v2.setLayoutParams(new LayoutParams(-1 , -1));  

  66.         v2.setScaleType(ScaleType.FIT_XY);  

  67.         v2.setImageResource(R.drawable.guild2);  

  68.         adapter.views.add(v2);  

  69.           

  70.         ImageView v3 = new ImageView(this);  

  71.         v3.setLayoutParams(new LayoutParams(-1, -1));  

  72.         v3.setScaleType(ScaleType.FIT_XY);  

  73.         v3.setImageResource(R.drawable.guild3);  

  74.         adapter.views.add(v3);  

  75.         //为最后一个页面添加监听事件,当点击后,进入主页面  

  76.         v3.setOnClickListener(new View.OnClickListener() {  

  77.             @Override  

  78.             public void onClick(View v) {  

  79.                 // TODO Auto-generated method stub  

  80.                 gotoLoginActivity();  

  81.             }  

  82.         });  

  83.         viewPager.setAdapter(adapter);  

  84.     }  

  85.     private void saveTag() {  

  86.         // TODO Auto-generated method stub  

  87.         editor = pre.edit();  

  88.         editor.putBoolean("isFirst", false);  

  89.         editor.commit();  

  90.     }  

  91.     private void gotoLoginActivity() {  

  92.         // TODO Auto-generated method stub  

  93.         DialogTool.createOnlyButtonDialog(context, "OK", "You have login success !", "LoginSuccess", null);  

  94.     }  

  95.     class GuiderPagerAdapter extends PagerAdapter{  

  96.         public ArrayList<View> views;  

  97.         public GuiderPagerAdapter(){  

  98.             views = new ArrayList<View>();  

  99.         }  

  100.         @Override  

  101.         public int getCount() {  

  102.             // TODO Auto-generated method stub  

  103.             return views.size();  

  104.         }  

  105.         @Override  

  106.         public void destroyItem(ViewGroup container, int position, Object object) {  

  107.             // TODO Auto-generated method stub  

  108.             container.removeView(views.get(position));  

  109.         }  

  110.         @Override  

  111.         public Object instantiateItem(ViewGroup container, int position) {  

  112.             // TODO Auto-generated method stub  

  113.             container.addView(views.get(position));  

  114.             return views.get(position);  

  115.         }  

  116.         @Override  

  117.         public boolean isViewFromObject(View arg0, Object arg1) {  

  118.             // TODO Auto-generated method stub  

  119.             return arg0 == arg1;  

  120.         }  

  121.     }  

  122. }  </font>

复制代码


标签: android
  • 相关阅读
你的Android不好用的原因就是这些!2015.08.28
Android Application对象必须掌握的七点2015.08.24
Android 性能调优点2015.08.21
十分钟设置android状态栏一体化开源工程推荐2015.08.17
Android自定义状态栏通知(Status Notification)的正确实现2015.08.06
  • 全国校区查询
  • 新手入门点击榜
  • 新手入门最新文章
  • 热门标签
关于我们
公司简介
发展历程
青鸟荣誉
联系我们
加入我们
青鸟课程
ACCP
学士后Java
BENET
网络营销
启蒙星IT工程师基础课程
学习客户端下载
青鸟优师
青鸟微讯
学士后Android软件工程师
网络营销师1.0
关注我们
RSS订阅
北大青鸟网络营销学院
北大青鸟学员社区
北大青鸟官方微信
北大青鸟微社区
回顶部 新版反馈 回到首页
官方新版意见收集

*

官方新版意见收集

提交成功,感谢您的反馈。

我们会认真阅读和考虑每个用户的反馈。