Android 新手引导

关于这个Demo的写法很多 我也献上一段 效果图如下

上代码

MainActivity

public class MainActivity extends Activity {

  // public List<File> Localphotos_List = new ArrayList<File>();
  private static final int[] pics = { R.drawable.guide1, R.drawable.guide2, R.drawable.guide3, R.drawable.guide4, R.drawable.guide5 };

  private ViewPager mViewPager;
  private ImageView mPage0;
  private ImageView mPage1;
  private ImageView mPage2;
  private ImageView mPage3;
  private ImageView mPage4;
  private Button start_bn;

  private boolean isFirste;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);

    // getPhotos();

    // isFirste =
    // SharedPreferencesUtils.getFirstLoginState(this.getApplicationContext());

    mViewPager = (ViewPager) findViewById(R.id.whatsnew_viewpager);
    start_bn = (Button) findViewById(R.id.start_bn);
    start_bn.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v) {

      }
    });

    mViewPager.setOnPageChangeListener(new MyOnPageChangeListener());

    mPage0 = (ImageView) findViewById(R.id.page0);
    mPage1 = (ImageView) findViewById(R.id.page1);
    mPage2 = (ImageView) findViewById(R.id.page2);
    mPage3 = (ImageView) findViewById(R.id.page3);
    mPage4 = (ImageView) findViewById(R.id.page4);

    final ArrayList<ImageView> list = new ArrayList<ImageView>();
    // 初始化引导图片列表
    for (int i = 0; i < pics.length; i++) {
      ImageView iv = new ImageView(this);
      iv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
      iv.setImageResource(pics[i]);
      iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
      list.add(iv);
    }

    /*
     * if (isFirste) { mPage3.setVisibility(View.VISIBLE); list.add(view4); }
     * else { mPage3.setVisibility(View.GONE); }
     */

    PagerAdapter adapter = new PagerAdapter() {

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

      @Override
      public int getCount() {
        return list.size();
      }

      @Override
      public void destroyItem(View container, int position, Object object) {
        ((ViewPager) container).removeView(list.get(position));
      }

      @Override
      public Object instantiateItem(View container, int position) {
        ((ViewPager) container).addView(list.get(position));
        return list.get(position);
      }
    };

    mViewPager.setAdapter(adapter);
  }

  public class MyOnPageChangeListener implements OnPageChangeListener {

    @Override
    public void onPageScrollStateChanged(int arg0) {

    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {

    }

    @Override
    public void onPageSelected(int arg0) {
      switch (arg0) {
        case 0:
          display();
          mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
          mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));
          break;

        case 1:
          display();
          mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
          mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));
          break;

        case 2:
          display();
          mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
          mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));
          break;

        case 3:
          display();
          mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
          mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));

/*          mPage3.setVisibility(View.GONE);
          mPage0.setVisibility(View.GONE);
          mPage1.setVisibility(View.GONE);
          mPage2.setVisibility(View.GONE);*/

          /*
           * SharedPreferencesUtils.saveFirstLoginState(Activity_WhatsNew.this.
           * getApplicationContext()); File dbFile = new
           * File(ResourceManager.DBDIR_PATH + "/userprofiledb.db"); if
           * (!dbFile.exists()) { UserProfileDB.instance().createNew(); } new
           * Handler().postDelayed(new Runnable() { public void run() {
           * startActivity(new Intent(Activity_WhatsNew.this,
           * Activity_LoginForFirst.class)); finish(); } }, 500);
           */
          break;

        case 4:
/*          mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));
          mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page_now));*/
          hide();
          break;
      }
    }
  }

  private void hide() {
    mPage0.setVisibility(View.GONE);
    mPage1.setVisibility(View.GONE);
    mPage2.setVisibility(View.GONE);
    mPage3.setVisibility(View.GONE);
    mPage4.setVisibility(View.GONE);
    start_bn.setVisibility(View.VISIBLE);
  }

  private void display() {
    mPage0.setVisibility(View.VISIBLE);
    mPage1.setVisibility(View.VISIBLE);
    mPage2.setVisibility(View.VISIBLE);
    mPage3.setVisibility(View.VISIBLE);
    mPage4.setVisibility(View.VISIBLE);
    start_bn.setVisibility(View.GONE);
  }

}

activity_main

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/whatsnew_viewpager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" >
    </android.support.v4.view.ViewPager>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginBottom="30dp"
            android:gravity="center_horizontal" >

            <ImageView
                android:id="@+id/page0"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:background="@drawable/page_now" />

            <ImageView
                android:id="@+id/page1"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:layout_marginLeft="10dp"
                android:background="@drawable/page" />

            <ImageView
                android:id="@+id/page2"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:layout_marginLeft="10dp"
                android:background="@drawable/page" />

            <ImageView
                android:id="@+id/page3"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:layout_marginLeft="10dp"
                android:background="@drawable/page" />

            <ImageView
                android:id="@+id/page4"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:layout_marginLeft="10dp"
                android:background="@drawable/page" />
        </LinearLayout>
    </LinearLayout>

    <Button
        android:id="@+id/start_bn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginBottom="40dp"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:text="马上开始"
        android:visibility="gone"
        />

</FrameLayout>

Demo见github

时间: 2024-10-12 18:45:30

Android 新手引导的相关文章

59.Android开源项目及库 (转)

转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io#%E5%8D%AB%E6%98%9F%E8%8F%9C%E5%8D%95 目录 UI UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送

android开发常用组件和第三方库(二)

TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending, github搜索:https://github.com/search 目录 UI UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送 完整项目 插件 出名框架 其他 好的文章 收集android上开源的酷炫的交互动

Android打造不一样的新手引导页面(一)

Android打造不一样的新手引导页面(一) 本系列主要分为两篇博客 打造不一样的新手引导页面(一) Android打造不一样的新手引导页面(二) 关于页面导航器的,可以查看我的这一篇博客仿网易新闻的顶部导航指示器 本篇博客主要讲解怎样自定义一个circleIndicator控件? 下一遍博客主要讲解怎样更改ViewPager切换的效果, 预计明天晚上之前更新. 效果图如下 1)首先我们先来看一下要怎样使用我们的circleIndicator控件 其实很简单,值需要两个步骤 1) 在xml布局文

Android网络项目课程笔记-----欢迎页面新手引导

1. 欢迎页面 1) 分析 2) 规则 (1) 在2.3没有titlebar,在4.x没有Actionbar     OK (2) 第一次进入程序才显示                               OK (3) 动画效果 (4) 过一段时间(2500)自动跳转到下一个页面     OK (5) 关闭自己                                                   OK (6) 后台操作(下载新图/检查网络/检查root) 课后作业: 实现欢

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

Android实现QQ分享及注意事项

一.获取APPID和帮助文档 在前面我介绍了关于Android中微信分享的文章< Android实现微信分享及注意事项>这一篇文章来看看关于QQ分享. 可以参看新手引导和接入说明:http://wiki.open.qq.com/wiki/移动应用接入wiki索引 分享相关文档说明:http://wiki.open.qq.com/index.php?title=Android_API调用说明&=45038#1.13_.E5.88.86.E4.BA.AB.E6.B6.88.E6.81.AF

Android的开发学习

一. 项目模块 1.  新手引导使用控件 ViewPager的使用步骤 1) 在布局中添加ViewPager控件 技巧:在代码中输入ViewPager,联想,从import中拷贝完整包名类名 2) 设置适配器 2. 最后一个页面显示立即体验按钮 1) 在适配器的getItem方法中判断如果是最后一个页面,设置按钮显示 2) 在Fragment中新增方法setVisible(),保存是否显示,并在onCreate()方法中设置按钮是否显示 3. ViewPager的缓存机制 除当前页面外左右各缓存

接入新浪、腾讯微博和人人网的Android客户端实例 接入新浪、腾讯微博和人人网的Android客户端实例

做了个Android项目,需要接入新浪微博,实现时也顺带着研究了下腾讯微博和人人网的Android客户端接入,本文就跟大家分享下三者的Android客户端接入方法. 一.实例概述 说白了,接入微博就是让你的应用程序可以调用新浪微博,腾讯微博和人人网的api,实现微博发送,分享给好友等等的功能啦.当然也可以实现让你的客户端使用微博账号进行登录.我们这篇文章要讲的就是访问这些社交平台提供的api的时候比较关键的一步,获取调用api接口的token,token可以理解为我们的客户端程序与社交平台api

Ace教你一步一步做Android新闻客户端(一)

复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和新手引导 软件侧滑菜单 滑动主页的GUI篇 一个内容解析篇. 代码里有很详细的注释 所以直接放代码了 有不会的站内信或者评论我会及时回复. MainActivity XML :只有一个ListView布局 <?xml version="1.0" encoding="utf-