我们在一个apk中第一次開始的时候,会有一个guide界面。一般使用ViewPager来完毕。

布局文件例如以下:

<?

xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" > <android.support.v4.view.ViewPager
android:id="@+id/guide_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager> <Button
android:id="@+id/guide_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:text="開始体验"
android:textSize="20sp"
android:visibility="gone" /> </RelativeLayout>

这就是一个想到Activity GuideActivity.java

package com.xlg.news;

import java.util.ArrayList;
import java.util.List; import com.xlg.news.adapters.WelcomeViewPagerAdapter;
import com.xuliugen.newsclient.R; import android.app.Activity;
import android.content.Intent;
import android.opengl.Visibility;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView; public class GuideActivity extends Activity { private ViewPager guideViewPager;
private Button guideButton; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guide_activity);
guideViewPager = (ViewPager) this.findViewById(R.id.guide_viewpager);
guideButton = (Button) this.findViewById(R.id.guide_button); //获取图片ImageView资源
final List<ImageView> imageViewsList = initData(); WelcomeViewPagerAdapter viewPagerAdapter = new WelcomeViewPagerAdapter(GuideActivity.this,imageViewsList);
guideViewPager.setAdapter(viewPagerAdapter); /**
* 设置guide ViewPager滑动的时候的监听事件
*/
guideViewPager.setOnPageChangeListener(new OnPageChangeListener() { /**
* 已经选中某一页的时候
*/
@Override
public void onPageSelected(int position) {
//已经到了最后一页
if(position == imageViewsList.size()-1){
guideButton.setVisibility(View.VISIBLE);
guideButton.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
//进入最后一页设置向导页,点击按钮完毕功能
}
});
}else{
guideButton.setVisibility(View.GONE);
}
} /**
*
* 在页面的滑动过程中
*/
@Override
public void onPageScrolled(int position, float arg1, int arg2) { } /**
*
* 滑动状态发生改变的状态
*/
@Override
public void onPageScrollStateChanged(int position) { }
});
} private List<ImageView> initData() {
List<ImageView> imageViewsList = new ArrayList<ImageView>();
// 加入图片控件
ImageView imageView1 = new ImageView(getApplicationContext());
imageView1.setBackgroundResource(R.drawable.guide_image1);
ImageView imageView2 = new ImageView(getApplicationContext());
imageView2.setBackgroundResource(R.drawable.guide_image2);
ImageView imageView3 = new ImageView(getApplicationContext());
imageView3.setBackgroundResource(R.drawable.guide_image3);
imageViewsList.add(imageView1);
imageViewsList.add(imageView2);
imageViewsList.add(imageView3);
return imageViewsList;
} }

当中的适配器例如以下:

package com.xlg.news.adapters;

import java.util.List;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView; /**
* 第一次启动页面的ViewPager适配器
* @author xuliugen
*/
public class WelcomeViewPagerAdapter extends PagerAdapter { private Context mContext;
private List<ImageView> mImageViewsList; public WelcomeViewPagerAdapter(Context context,
List<ImageView> imageViewsList) {
mContext = context;
mImageViewsList = imageViewsList;
} @Override
public int getCount() {
return mImageViewsList.size();
} @Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
} /**
* 给制定的viewpager加入一个view的方法
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
//加入一个imageView
container.addView(mImageViewsList.get(position));
return mImageViewsList.get(position);
} /**
* 给制定的viewpager移除一个view的方法
*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
}

Android中ViewPager的使用的更多相关文章

  1. Android中viewPager的一两点使用

    Android中viewPager的一两点使用 viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用.这里只简单说下直接使用. 使用viewP ...

  2. Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...

  3. Android中ViewPager实现滑动条及与Fragment结合的实例教程

    ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ...

  4. android中viewPager+fragment实现的屏幕左右切换(进阶篇)

    Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等.可以看做是一个子Activity. 先看一下布局: 1 <LinearLayout xmlns:a ...

  5. android中viewPager实现的屏幕左右切换(入门篇)

    大多数的APP都可以实现几个屏幕来回的切换, 首先新建两个Activity,内容随意,布局随意.接下来在MainActivity.xml: <RelativeLayout xmlns:andro ...

  6. android 中 viewpager 滑动的指示器

    先看下效果图: 这个需要用到1个开源的 库,这个后面也会说下的. 工程目录: 1. MainActivity.java public class MainActivity extends Fragme ...

  7. android 中 ViewPager 的平常用法 ViewPager+ Views

    延续前面几个的经常用到的ViewPager, 直接加载各种不同的 View 工程目录: 代码: public class ViewActivity extends Activity { // 每个Vi ...

  8. Android中ViewPager如何设置不能通过屏幕左右滑动来切换页面

    //很多时候,我想禁止用户通过屏幕的左右滑动来切换界面!如何实现! //创建一个类继承viewpager,实现 onTouchEvent   和   onInterceptTouchEvent方法,都 ...

  9. Android中ViewPager动态创建的ImageView铺满屏幕

    ImageView imageView=new ImageView(context); imageView.setScaleType(ScaleType.FIT_XY);//铺满屏幕

随机推荐

  1. 搭建javawebxiangmu

    https://blog.csdn.net/qq_23994787/article/details/73612870#

  2. WebKit.NET-0.5简单应用

    最近想用c#做个简单的浏览器工具,但是网站一些内容不支持c#内置的WebBowser控件,于是只能改用其他内核浏览器进行开发,搜索到WebKit.NET这个封装好的浏览器引擎,需求的功能也都有,于是用 ...

  3. Tomcat跨域资源共享

    1.下载Jar包 cors-filter-1.7.jar java-property-utils-1.9.jar 下载完成后将Jar拷贝到tomcat下lib目录中 2.修改web.xml配置 在29 ...

  4. OpenJDK源码研究笔记(一)-参数检查&抛出带关键错误提示信息的异常

    OpenJDK源码研究笔记系列文章,是我在阅读OpenJDK7源码的过程中的一些体会.收获.看法. 把研究过程中的成长和收获一点点地整理出来,是对自己研究学习的一个小结,也有可能给学习Java的一些同 ...

  5. 将Spring Boot应用程序迁移到Java9:兼容性

    将 Spring Boot 应用程序迁移到 Java 9:兼容性 随着 Java 9 的到来,关于如何迁移应用程序以使用模块系统有很多的讨论.遗憾的是,大多数文章的焦点都集中于简单的 Hello Wo ...

  6. 【大话QT之十六】使用ctkPluginFramework插件系统构建项目实战

    "使用ctkPluginFramework插件系统构建项目实战",这篇文章是写博客以来最纠结的一篇文章. 倒不是由于技术都多么困难,而是想去描写叙述一个项目架构採用ctkPlugi ...

  7. 每一个人都懂得敏捷开发 (软件project), 为何产品开发的效率与质量还是这么的烂?

    敏捷开发(软件project)是 "设计" 出来的.不是 "学" 来的-- 很多人都一直在质疑敏捷开发能否提高效率与质量? 更有不少人以嘲讽.不屑的口吻看待软件 ...

  8. [JZOJ3383] [NOIP2013模拟] 太鼓达人 解题报告(数位欧拉)

    来源:XLk 摘录 HDU2894 Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队 ...

  9. C#中Request.Cookies 和 Response.Cookies 的区别分析

    .NET中提供了读写Cookie的多种方法,Request.Cookies 是客户端通过 Cookie 标头形式由客户端传输到服务器的 Cookie:Response.Cookies 在服务器上创建并 ...

  10. [JSOI2008]火星人 hash+splay

    题目描述: 现在,火星人定义了一个函数 LCQ(x, y)LCQ(x,y),表示:该字符串中第 xx 个字符开始的字串,与该字符串中第 yy 个字符开始的字串,两个字串的公共前缀的长度.比方说,LCQ ...