Android利用viewpage建立引导页面
来源:互联网 发布:支付宝显示网络不给力 编辑:程序博客网 时间:2024/05/16 06:29
主要思想:
1.建一个StartActivity作为入口。此页面主要任务,显示Splash页面 和 判断是否第一次进入此app,至跳转至引导页面。
1.1初始化后,在新线程沉睡1500,后发消息到handler.
1.2hander判断是否第一次进入。
1.2.1 第一次,则跳转MainActivity。
1.2.2以后,则跳转到FrameActivity。
2.如果 IsFirstRun=true 跳转到 MainActivity,此页面主要有一个v4包下的viewpage,实现引导。
2.1找到viewpage
2.2对viewpage添加Adapter
2.2.1创建FragmentPagerAdapter子类,并实现必须实现的3个方法。
2.2.1.1构造器。
2.2.1.2getItem(int position)方法。返回得到相应位置下的Fragment。
2.2.1.3实现得到Fragment总数,getCount()
3.由以上2.2.1.2我们需要Fragment子类,将实现的子类放到viewpage。
3.1实现onCrateView()方法,此方法在Fragment创建view创建时调用。
3.1.1对view需要填充。View.inflate(context, resource, root); 需要context。所以,Fragment子类构造器必须添加context.
3.1.2return view
3.2对构造器添加context
主要代码如下:
/** * 软件启动界面 * */public class StartActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fragment_my01);LinearLayout mLinear = (LinearLayout) findViewById(R.id.Fragment01Linear);mLinear.setBackgroundResource(R.drawable.ic_splash_screen);new Thread() {public void run() {try {Thread.sleep(1500);} catch (InterruptedException e) {e.printStackTrace();}Message msg = hand.obtainMessage();hand.sendMessage(msg);}}.start();};Handler hand = new Handler() {public void handleMessage(android.os.Message msg) {super.handleMessage(msg);if (isFristRun()) {Intent intent = new Intent(StartActivity.this,MainActivity.class);startActivity(intent);} else {Intent intent = new Intent(StartActivity.this,FrameActivity.class);startActivity(intent);}finish();};};private boolean isFristRun() {SharedPreferences sharedPreferences = this.getSharedPreferences("share", MODE_PRIVATE);boolean isFirstRun = sharedPreferences.getBoolean("isFirstRun", true);Editor editor = sharedPreferences.edit();if (!isFirstRun) {return false;} else {editor.putBoolean("isFirstRun", false);editor.commit();return true;}}public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {}return true;}}
/** * 软件新手指引界面 * */public class MainActivity extends FragmentActivity {private ViewPager mViewPager;// 定义一个自己的viewpager// ViewPager 和我们的listview差不多也要一个适配器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView() {mViewPager = (ViewPager) findViewById(R.id.MyViewPager);ViewPagerAdapter myAdapter = new ViewPagerAdapter(this.getSupportFragmentManager(), MainActivity.this);mViewPager.setAdapter(myAdapter);}@Overrideprotected void onStop() {finish();super.onStop();}public boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode == KeyEvent.KEYCODE_BACK) {}return true;}}
public class ViewPagerAdapter extends FragmentPagerAdapter{private Context ctx;//FragmentManager fragment管理器 ,上下文public ViewPagerAdapter(FragmentManager fm,Context ctx) {super(fm);this.ctx = ctx;}//返回一个fragment//arg0 滑动到第几页@Overridepublic Fragment getItem(int arg0) {Fragment mFragment = null;if(arg0 == 0){mFragment = new MyFragmentone(ctx);}else if(arg0 == 1){mFragment = new MyFragmenttwo(ctx);}else if(arg0 == 2){mFragment = new MyFragmentthree(ctx);}return mFragment;}//返回适配数量@Overridepublic int getCount() {// TODO Auto-generated method stubreturn 3;}}
@SuppressLint("ValidFragment")public class MyFragmentone extends Fragment {private Context ctx;// 从activity当中得到的上下文@SuppressLint("ValidFragment")public MyFragmentone(Context ctx) {super();this.ctx = ctx;}@Overridepublic void onAttach(Activity activity) {// TODO Auto-generated method stubsuper.onAttach(activity);// 初始化fragment时使用}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// fragment创建时使用}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// fragment创建view时使用// 返回的是一个view/** * LayoutInflater inflater 找我们的fragmentxml时实用的 ViewGroup * 使用inflater时宽高相对条件 bundler 可以通过我们的bundle在fragment创建view时传递参数 * */View view = null;view = View.inflate(ctx, R.layout.fragment_my01, null);return view;}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onActivityCreated(savedInstanceState);// activity创建时使用}@Overridepublic void onPause() {// TODO Auto-generated method stubsuper.onPause();// 暂停}@Overridepublic void onResume() {// TODO Auto-generated method stubsuper.onResume();// activity onresume 时使用}@Overridepublic void onStop() {// activity onStop()使用super.onStop();}@Overridepublic void onDestroyView() {// fragment销毁view时进入super.onDestroyView();}@Overridepublic void onDestroy() {// activity销毁super.onDestroy();}@Overridepublic void onDetach() {// fragment 被删除时进入super.onDetach();}}
@SuppressLint("ValidFragment")public class MyFragmenttwo extends Fragment {private Context ctx;public MyFragmenttwo(Context ctx) {super();this.ctx = ctx;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = null;view = View.inflate(ctx, R.layout.fragment_my01, null);LinearLayout mLinear = (LinearLayout) view.findViewById(R.id.Fragment01Linear);mLinear.setBackgroundResource(R.drawable.guidance_new2);return view;}}
@SuppressLint("ValidFragment")public class MyFragmentthree extends Fragment {private Context ctx;public MyFragmentthree(Context ctx) {super();this.ctx = ctx;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = null;view = View.inflate(ctx, R.layout.fragment_my03, null);ImageView mBtn = (ImageView) view.findViewById(R.id.MyLoginBtn);mBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent = new Intent(ctx, FrameActivity.class);ctx.startActivity(intent);}});return view;}}
- Android利用viewpage建立引导页面
- ViewPage引导页面
- ViewPage实现欢迎引导页面
- Android-ViewPage实现一次引导
- ViewPage引导页面,添加动画效果
- [android] 利用 ViewPage 实现滑动屏
- android UI必备之ViewPage实现欢迎引导页
- viewpage,android中的简单多页面
- android仿微信引导页面
- android引导页面
- Android引导页面
- Android 引导页面
- Android引导页面
- android视频引导页面
- Android中的页面引导
- Android引导页面
- Android 引导页面 欢迎页面
- android viewPage
- Wallis公式及其应用
- 周末傍晚骑行淇澳岛
- poj 3122 Pie (二分)
- Intent隐式调用 滑动开关 隐式调用常用代码电话浏览器
- 细说linux IPC(七):信号(上)
- Android利用viewpage建立引导页面
- Windows环境下开发Ruby
- 多种语言打印Hello World
- nsurlsession 图片上传
- PrePost和FIN算法的JAVA版本
- hdu-1301
- 数据解析
- 32位汇编语言学习笔记(9)--分析while循环的汇编代码
- vector冒泡排序