在android中ViewPager是非常常用的控件。它在android.support.v4.view.ViewPager下。你们自己可以进http://developer.android.com/reference/android/support/v4/view/package-summary.html

进行了解与学习。

下面是我自己写的一个测试的viewpager。代码如下

/**
* @Title: HelpActivity.java
* @Package com.konka.Home
* @version V1.0
*/
package com.example.help; import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AbsoluteLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout; /**
* @ClassName: HelpActivity
* @author llb
*
*/
public class HelpActivity extends Activity implements OnClickListener,
OnPageChangeListener {
private static final String TAG = HelpActivity.class.getSimpleName();
private ViewPager viewPager;
private ArrayList<View> pageViews;
private ViewGroup main, group;
private ImageView[] dots;
private ImageButton imgbtn;
private int currentIndex;
private ViewPagerAdapter vpAdapter;
private ImageView imageView;
private static final int GO_BTN = ;
private static final int[] help_pics = { R.drawable.guide0,
R.drawable.guide1, R.drawable.guide2, R.drawable.guide_cooperate }; /**
* @param savedInstanceState
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
pageViews = new ArrayList<View>();
LayoutInflater inflater = getLayoutInflater();
main = (ViewGroup) inflater.inflate(R.layout.help, null);
LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
for (int i = ; i < help_pics.length; i++) {
RelativeLayout rl = new RelativeLayout(this);
rl.setLayoutParams(mParams);
rl.setBackgroundResource(help_pics[i]);
if (i == (help_pics.length - )) {
imgbtn = new ImageButton(this);
imgbtn.setBackgroundResource(R.drawable.help_go_btn_selector);
imgbtn.setOnClickListener(this);
imgbtn.setTag(GO_BTN);
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp1.bottomMargin = ;
lp1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lp1.addRule(RelativeLayout.CENTER_HORIZONTAL,
RelativeLayout.TRUE);
rl.addView(imgbtn, lp1);
}
pageViews.add(rl); }
/*
* RelativeLayout rl = new RelativeLayout(this);
* rl.setLayoutParams(mParams); pageViews.add(rl);
*/
group = (ViewGroup) main.findViewById(R.id.viewGroup);
viewPager = (ViewPager) main.findViewById(R.id.guidePages);
vpAdapter = new ViewPagerAdapter(pageViews);
viewPager.setAdapter(vpAdapter); viewPager.setOnPageChangeListener(this); initDots();
setContentView(main); } private void initDots() {
// TODO Auto-generated method stub
dots = new ImageView[help_pics.length];
for (int i = ; i < help_pics.length; i++) {
imageView = new ImageView(HelpActivity.this);
imageView.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
imageView.setMaxHeight();
imageView.setMaxWidth();
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setAdjustViewBounds(true);
imageView.setPadding(, , , );
imageView.setImageResource(R.drawable.dot);
dots[i] = imageView;
dots[i].setEnabled(false);
dots[i].setTag(i);
dots[i].setOnClickListener(this);
group.addView(dots[i]);
}
currentIndex = ;
dots[currentIndex].setEnabled(true);
} private void setCurView(int position) {
if (position < || position >= help_pics.length) {
return;
}
viewPager.setCurrentItem(position);
} private void setCurDot(int positon) {
if (positon < || positon > help_pics.length -
|| currentIndex == positon) {
return;
}
dots[positon].setEnabled(true);
dots[currentIndex].setEnabled(false);
currentIndex = positon;
} public class ViewPagerAdapter extends PagerAdapter { private List<View> views; public ViewPagerAdapter(List<View> views) {
this.views = views;
} @Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(views.get(arg1));
} @Override
public void finishUpdate(View arg0) {
// TODO Auto-generated method stub } public int getCount() {
if (views != null) {
return views.size();
} return ;
} // 锟斤拷始锟斤拷arg1位锟矫的斤拷锟斤拷
public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(views.get(arg1)); return views.get(arg1);
} public boolean isViewFromObject(View arg0, Object arg1) {
return (arg0 == arg1);
} public void restoreState(Parcelable arg0, ClassLoader arg1) {
// TODO Auto-generated method stub } public Parcelable saveState() {
// TODO Auto-generated method stub
return null;
} public void startUpdate(View arg0) {
// TODO Auto-generated method stub } } /**
*
* @param arg0
* @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageScrollStateChanged(int)
*/
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
} /**
* (锟斤拷 Javadoc) Title: onPageScrolled Description:
*
* @param arg0
* @param arg1
* @param arg2
* @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageScrolled(int,
* float, int)
*/
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
} /**
*
* @param arg0
* @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected(int)
*/
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
/*
* if(arg0 == pageViews.size()-1){ viewPager.setCurrentItem (arg0 - 1);
* ToHome(); return; }
*/ setCurDot(arg0);
} /**
* (锟斤拷 Javadoc) Title: onClick Description:
*
* @param v
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
public void onClick(View v) {
// TODO Auto-generated method stub
int position = (Integer) v.getTag();
if (position == GO_BTN) {
ToHome();
} else {
setCurView(position);
setCurDot(position);
}
} public void ToHome() { Intent intentHome = new Intent(HelpActivity.this, HomeActivity.class);
HelpActivity.this.startActivity(intentHome);
finish(); } /**
*
* @param keyCode
* @param event
* @return
* @see android.app.Activity#onKeyDown(int, android.view.KeyEvent)
*/
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
finish();
return super.onKeyDown(keyCode, event);
}
}

主布局如下

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <android.support.v4.view.ViewPager
android:id="@+id/guidePages"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</android.support.v4.view.ViewPager> <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <LinearLayout
android:id="@+id/viewGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
</LinearLayout>
</RelativeLayout> </FrameLayout>

测试结果如下

如果有什么问题请留言,相互学习是自己提高和伙伴们共同的结果与积金。

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 listview viewpager解决冲突 滑动

    Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决   在listview 上使用 addHeaderView 在第 ...

  4. Android 使用ViewPager实现左右循环滑动图片

    ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1.    首先看一 ...

  5. android使用ViewPager实现欢迎引导页

    android使用ViewPager实现欢迎引导页 大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面.当第二次启动的时候,则直接进入主界面. 这种效果一 ...

  6. android下ViewPager的使用,带下部选项栏的切换动画

    (文章针对类似我这种初学者,大神看到不要嘲笑) 演示 我的规矩是先上GIF动画效果(Linux下用转的GIF,清晰度还可以但是不知道为什么放博客上,界面会这么大): 代码: android中有View ...

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

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

  8. Android 使用ViewPager 做的半吊子的图片轮播

    Android 使用ViewPager 做的半吊子的图片轮播 效果图 虽然不咋样,但是最起码的功能是实现了,下面我们来一步步的实现它. 界面 下面我们来分析一下界面的构成 整体的布局: 因为我们要做出 ...

  9. 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题

    ViewPager是android-support-v4.jar包中的一个系统控件,继承自ViewGroup,专门用以实现左右滑动切换View的效果,使用时需要首先在Project->prope ...

随机推荐

  1. 没有技术说明文档的开源都是耍流氓:微软Roslyn编译即服务在CIIP中具体应用(上)

    前段时间我发布了 github开源:企业级应用快速开发框架CIIP WEB+WIN+移动端,很多园友们都表示支持并与我探讨相关技术问题,上篇中我也承诺会写相关的技术文章,本篇就来介绍一下建模模块中使用 ...

  2. 1074, "Column length too big for column 'err_solution' (max = 21845); use BLOB or TEXT instead"

    一个注意点,就是sqlalchemy 使用create_all()建表的时候,要在 create_all()所在页面import那些表的model sqlalchemy.exc.Operational ...

  3. keyup与setInterval

    <html><body> <input type="text" id="clock" size="35" /& ...

  4. 转:从编译链接过程解析static函数的用法

    关于static函数的用法 就像我们熟知的那样,变量可以分全局的和局部的,函数也可以分全局的和局部的. 比如说,在一个工程的common.h中定义了一个全局变量 int test;那么在整个工程的作用 ...

  5. window.onload()和$(function(){});的区别

    1.window.onload必须等到页面中所有元素加载完之后才会执行(包括图片.视频等)而$(function(){});是在结构绘制完毕之后执行,二者的执行时机是不同的,一般来说后者会首先执行 2 ...

  6. nginx 缓存机制

    nginx 缓存机制   Nginx缓存的基本思路 利用请求的局部性原理,将请求过的内容在本地建立一个副本,下次访问时不再连接到后端服务器,直接响应本地内容 Nginx服务器启动后,会对本地磁盘上的缓 ...

  7. Android开发--LinearLayout的应用

    1.简介 LinearLayout为安卓三大常用布局中的线性布局.其中,线性布局又分为水平线性布局和垂直线性布局.视图如下所示:

  8. WC2015 酱油记

    这是真·酱油记! Day0 因为我们在上海,所以只要坐高铁就可以了2333.到了火车站以后我们坐大巴到学军中学恩,结果坐大巴的时间和做坐高铁的时间差不做←_←. 吐槽了一下住宿环境和课程表就已经晚上了 ...

  9. WPF自定义窗口基类

    WPF自定义窗口基类时,窗口基类只定义.cs文件,xaml文件不定义.继承自定义窗口的类xaml文件的根节点就不再是<Window>,而是自定义窗口类名(若自定义窗口与继承者不在同一个命名 ...

  10. Html5实现移动端、PC端 刮刮卡效果

    刚从南方回来就分了一个刮刮卡效果的页面,特么的我在烦恼怎么用H5去实现这个效果呢,好不容易写出来了,产品居然说:“既然你可以写出来这个效果那当然好了,开始我只是打算让你实现点击就出现呢!”… … 尼玛 ...