1. import java.util.ArrayList;
  2.  
  3. import android.app.Activity;
  4. import android.content.SharedPreferences;
  5. import android.os.Bundle;
  6. import android.support.v4.view.PagerAdapter;
  7. import android.support.v4.view.ViewPager;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.view.ViewGroup.LayoutParams;
  12.  
  13. //安卓应用欢迎界面标准
  14. public class MainActivity extends Activity {
  15. private ViewPager viewPager;
  16. private ViewPagerAdapter pagerAdapter = new ViewPagerAdapter();
  17. // 欢迎界面显示的视图ID
  18. private int[] viewsId = { R.layout.wel1, R.layout.wel2, R.layout.wel3 };
  19. // 缓冲界面显示的视图ID
  20. private int cacheId = R.layout.wel2;
  21.  
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. SharedPreferences shared = this.getSharedPreferences("app_global",
  26. MODE_WORLD_WRITEABLE);
  27. viewPager = new ViewPager(this);
  28. viewPager.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
  29. LayoutParams.MATCH_PARENT));
  30. if (!shared.contains("used")) {
  31. pagerAdapter.setViewsId(viewsId);
  32. shared.edit().putBoolean("used", true).commit();
  33. } else {
  34. pagerAdapter.setViewsId(cacheId);
  35. }
  36. viewPager.setAdapter(pagerAdapter);
  37.  
  38. // 获取最后一个视图,以便绑定事件
  39. View v = pagerAdapter.getLastView();
  40.  
  41. setContentView(viewPager);
  42. }
  43.  
  44. // 在其中写入当显示缓冲图片时执行的操作
  45. protected void onShowCachePicture() {
  46.  
  47. }
  48.  
  49. private class ViewPagerAdapter extends PagerAdapter {
  50. private ArrayList<View> viewList = new ArrayList<View>();
  51.  
  52. @Override
  53. public void destroyItem(ViewGroup container, int position, Object object) {
  54. container.removeView(viewList.get(position));
  55. }
  56.  
  57. @Override
  58. public Object instantiateItem(ViewGroup container, int position) {
  59. container.addView(viewList.get(position));
  60. return viewList.get(position);
  61. }
  62.  
  63. @Override
  64. public int getCount() {
  65. return viewList.size();
  66. }
  67.  
  68. @Override
  69. public boolean isViewFromObject(View arg0, Object arg1) {
  70. return arg0 == arg1;
  71. }
  72.  
  73. public void setViewsId(int... ids) {
  74. LayoutInflater inflater = getLayoutInflater();
  75. for (int id : ids) {
  76. View v = inflater.inflate(id, null);
  77. viewList.add(v);
  78. }
  79. }
  80.  
  81. public View getLastView() {
  82. return viewList.get(viewList.size() - 1);
  83. }
  84. }
  85.  
  86. }

Android开发之欢迎界面标准的更多相关文章

  1. 【Android开发-5】界面装修,五大布局你选谁

    前言:假设要开一家店,门店装修是非常重要的事情.有钱都请专门的建筑设计公司来设计装修,没钱的仅仅能自己瞎折腾.好不好看全凭自己的感觉.像Android开发.在移动端大家看到的界面视觉不咋滴,一般连打开 ...

  2. Android开发案例 - 欢迎界面

    本文详细描述了如何实现如下图中的微信启动界面. 该类启动界面的特点是在整个Application的生命周期里, 它只会出现在第一次进入应用时, 即便按回退键到桌面之后. 使用该类启动界面的应用还有: ...

  3. android开发中在界面上实现曲线图的几个开源项目

    转自:https://wapiknow.baidu.com/question/1959128379041474620?qq-pf-to=pcqq.c2c 几个相关开源项目: 1.  MPAndroid ...

  4. 【Android开发】交互界面布局详解

    原文:http://android.eoe.cn/topic/summary Android 的系统 UI 为构建您自己的应用提供了基础的框架.主要包括主屏幕 (Home Screen).系统 UI ...

  5. Android开发1:基本UI界面设计——布局和组件

    前言 啦啦啦~本学期要开始学习Android开发啦~ 博主在开始学习前是完完全全的小白,只有在平时完成老师要求的实验的过程中一步一步学习~从此篇博文起,博主将开始发布Android开发有关的博文,希望 ...

  6. Android(java)学习笔记219:开发一个多界面的应用程序之两种意图

    1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...

  7. 图解android开发在界面上显示图片

    图解android开发在界面上显示图片<申明:转自百度> <原文章地址:http://jingyan.baidu.com/article/49711c6153a277fa441b7c ...

  8. android开发学习笔记系列(2)-android应用界面编程

    前言 本篇博客将会简要介绍andriod开发过程中的一些界面元素和编程的实现,我将大家走进安卓的XML世界,当然可能会涉及到java代码,当然本文主要是介绍XML文件的界面布局. 那么我们的XML存在 ...

  9. Android开发精彩博文收藏——UI界面类

    本文收集整理Android开发中关于UI界面的相关精华博文,共大家参考!本文不定期更新! 1. Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各 ...

随机推荐

  1. Java遍历对象所有属性

    要获取对象的所有属性可以使用getDeclaredFields()方法会返回一个Field数组遍历这个数组几个遍历所有属性注意使用这个方法会抛出4个异常然后根据属性的类型选择执行对应的内容 publi ...

  2. protobuf 更新消息和扩展,包

    一.更新一个消息类型 如果一个已有的消息格式已无法满足新的需求--如,要在消息中添加一个额外的字段--但是同时旧版本写的代码仍然可用.不用担心!更新消息而不破坏已有代码是非常简单的.在更新时只要记住以 ...

  3. 样条之贝塞尔(Bezier)

    我曾经发过两篇关于贝塞尔的文章:数学图形(1.47)贝塞尔(Bézier)曲线,数学图形之贝塞尔(Bézier)曲面.那是使用我自己定义的脚本语言生成贝塞尔图形.由于我自己定义的脚本语法功能有限,所以 ...

  4. go语言之进阶篇方法的重写

    1.方法的重写 示例: //Person类型,实现了一个方法 func (tmp *Person) PrintInfo() { fmt.Printf("name=%s, sex=%c, ag ...

  5. 面试题-Redis、MongoDB、Memcached[转]

    https://blog.csdn.net/gangsijay888/article/details/81213811 一.缓存 搞懂缓存那些事:https://blog.csdn.net/a7248 ...

  6. Round() 四舍五入 js银行家算法

    首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825;        ...

  7. VS2010 SP1安装失败之”此计算机的状态不支持此安装“()

    升级安装VS2010SP1的时候,出现“此计算机的状态不支持此安装”,Google得之: 如下图显示: 安装程序已经检测到,此计算机不满足安装此软件所需的条件.必须先解决以下这些造成阻止的问题,才可以 ...

  8. Java面试问题总结

    前几天Java面试中遇到的问题,这仅仅是当中的一部分问题.面试中有非常多问题是关于数据结构和算法的.在这里做下总结,希望有能力的人能够试着做一下,并在评论区留下您的答案.让大家相互学习.谢谢 程序设计 ...

  9. 【Java】Eclipse代码格式化-代码模板

    Eclipse代码格式化-代码模板 eclipse 代码模板_百度搜索 编码规范系列(一):Eclipse Code Templates设置 - 青葱岁月 - ITeye博客 善用Eclipse的代码 ...

  10. 【R】自定义函数方法