我们在一个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. Java线程之Java内存模型(jmm)

    一.Java内存模型(jmm) 线程通信 消息传递 重排序 顺序一致性 Happens-Before As-If-Serial

  2. C语言数组和指针是不同的

    有一个这样的错误: 在一个文件中定义:int mango[100];  在另一个文件中声明:extern int *mango;  将会产生错误 定义和声明的区别: 在C中,任何对象都有且只有一个定义 ...

  3. git 源码安装后报错/usr/bin/git: No such file or directory

    现象 今天源码安装一个git后,执行git命令后报如下错误: $ git --version -bash: /usr/bin/git: No such file or directory 分析过程 开 ...

  4. JAVA 程序生成jar包运行报错 Exception in thread "Thread-1" java.lang.NoClassDefFoundError: javax/xml/rpc 的解决方法

    最近开发支付宝生活缴费的项目,java程序要使用.NET 的WebService服务,后来正式部署出现这错误,网上查资料是少了一个“jaxrpc.jar”文件,但是我本地调试正常,最后是删除我目前导出 ...

  5. django xadmin插件 的基本用法 1

    1  安装或导入 xadmin 1 pip 安装 2 源码导入 在新建项目中新建extra_apps文件夹并将下载后的源码解压放入 (推荐,方便后续我们可以在源码中自定义一些插件的使用) 注: 具体可 ...

  6. 高并发web系统设计

    转载自:http://blog.csdn.net/qq_26562641/article/details/53170913 一.一般高并发web系统这里的一般指的是秒杀之类的电子商务系统,比如说小米抢 ...

  7. 【BZOJ 1293】[SCOI2009]生日礼物

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然的滑动窗口题. (尺取法 如果l..i这一段已经有k种珍珠了. 那么就尝试把l++; (即把l这个影响尝试去掉一下 如果不足k种 ...

  8. solr环境搭建&基本使用

    分步指南 solr服务与tomcat整合 solr使用配置步骤 solr使用 推荐分词工具 相关的文章 一.Solr服务与tomcat整合 1.solr相关版本下载路径:http://archive. ...

  9. Qt之字典划词

    简述 相信大家都用过词典吧!因为英语不太好...O(∩_∩)O~,所以经常进行划词翻译! 简述 实现 效果 源码 更多参考 实现 原理:鼠标移至某单词之上,获取鼠标位置,然后在对应位置进行取词,翻译! ...

  10. Qt之pro配置多个子工程/子模块

    简述 进行Qt项目开发的时候,尤其是大型项目,经常涉及多工程/多模块问题,其主要思想还是模块化,目的是为了降低程序复杂度,使程序设计.调试和维护等操作简单化. 简述 配置 效果 多工程 多模块 更多参 ...