关于这个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

https://github.com/huanyi0723/NoviceGuide

Android 新手引导的更多相关文章

  1. Android新手引导库推荐

    本文同步至http://javaexception.com/archives/31 介绍一波新手引导层的库.都是star数挺高的一些库. 1.NewbieGuide(国内开发者开发) Android ...

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

    转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...

  3. 各种Android UI开源框架 开源库

    各种Android UI开源框架 开源库 转 https://blog.csdn.net/zhangdi_gdk2016/article/details/84643668 自己总结的Android开源 ...

  4. android打飞机游戏、MVP句子迷App、悬浮窗、RxJava+Retrofit、加载动画、定制计划App等源码

    Android精选源码 微信打飞机 android进度设置加载效果源码 Android新手引导库EasyGuide MVP-好看又好用的句子迷客户端 XFloatView 一个简易的悬浮窗实现方案 a ...

  5. android文件选择器、仿淘宝编辑页面、新手引导层等源码

    Android精选源码 单片机和安卓应用,传感器 文件选择器 android滑动选择的尺子view源码 android视频录制 视频压缩的源码 仿今日头条顶部导航指示器源码 Android框架+常用控 ...

  6. Android开发之ViewPager做新手引导界面

    先看一下我们要开发的界面(三张图片,滑到最后一个会出现开始体验的Button,下面的小红点会跟着一起滑动): 首先看一下布局文件: <?xml version="1.0" e ...

  7. Android开发工具之Dash

    作为一名死coder,每天最常见的动作就是查看各种API文档,你一定也有过同时打开N个窗口(HTML.PDF.CHM),不停的在编辑器与文档之间切换的感受吧?怎么说呢,其实我很讨厌这种枯燥无味的动作, ...

  8. Android主流UI开源库整理(转载)

    http://www.jianshu.com/p/47a4a7b99364 标题隐含了两个层面的意思,一个是主流,另一个是UI.主流既通用,一些常规的按钮.Switch.进度条等控件都是通用控件,因此 ...

  9. android 项目学习随笔二(引导页 )

    1.引导页 1.定义灰色.红色圆点的shape XML文件 2.定义布局文件,利用相对布局文件定位,利用线性布局加载灰色圆点,imageview加载红色圆点 3.android.support.v4. ...

随机推荐

  1. YTU 2344: 先序遍历二叉树

    原文链接:https://www.dreamwings.cn/ytu2344/2603.html 2344: 先序遍历二叉树 时间限制: 1 Sec  内存限制: 128 MB 提交: 4  解决:  ...

  2. JDBC的批量处理数据

    主要用到的方法有: preparedStatement.executeBatch();//积攒的数据执行 preparedStatement.clearBatch();//积攒的清除掉 prepare ...

  3. Expanding Rods(二分POJ1905)

    Expanding Rods Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13688   Accepted: 3527 D ...

  4. python中给for循环增加索引

    for index, item in enumerate(Foo()): print "index: ", index, " item: ",item 用enu ...

  5. Spring 中的页面重定向

    在写 java 程序设计实践作业的时候遇到了重定向页面的需求,因为还没学到 java web 开发,所以自己就在网上搜了一下相关的代码,总结出了一些小小的经验,希望在下学期学 java web 的时候 ...

  6. vilte/vowifi

    vendor/mediatek/proprietary/packages/services/Ims/src/com/mediatek/ims/ImsService.java ¦ ¦ ¦ ¦ ¦ ¦ v ...

  7. phpcms 01

    1 安装完成phpcms,然后打开2 C:\wamp\www\phpcms\templates 复制下面的default 目录,改名为ypzy2014 3 修改ypzy2014文件夹下的config配 ...

  8. Android各种获取Context方法

    首先讲一讲这四个函数的区别,后面还有我对context的一些理解区别如下所示: 原文链接http://stackoverflow.com/questions/6854265/getapplicatio ...

  9. PHP去除连续空格

    <?php $note = strip_tags($value['Content']); $note = trim($note); $note = str_replace(" &quo ...

  10. IOS自定义仪表盘

      登录|注册     周海锋 的专栏 Objective-C/Cocos2d/Cocos2d-x/Php/JS       目录视图 摘要视图 订阅 2016软考项目经理实战班    学院周年礼-顶 ...