在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. 深入浅出设计模式——桥接模式(Bridge Pattern)

    模式动机设想如果要绘制矩形.圆形.椭圆.正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色.绿色.蓝色等,此时至少有如下两种设计方案: 第一种设计方案是为每一种形状都提供一套 ...

  2. 《BI项目笔记》创建计算成员

    也可以利用脚本来生成计算成员

  3. hdu2896病毒侵袭(ac自动机)

    链接 ac自动机的模板题 说2个注意的地方 一是题目说明包含所有ASCII字符,可以开到0-127 包含空格 题目会输入多个源串,在加完当前的val值时,不应清0,可以开个标记数组. #include ...

  4. android,NDK android.mk相关

    1.c++ try...catch的支持 需要在Android.mk 中添加 LOCAL_CPPFLAGS += -fexceptions,或者在Application.mk中添加APP_CPPFLA ...

  5. Android DisplayMetrics类获取屏幕大小

    DisplayMetrics public class DisplayMetrics   extends Object java.lang.Object     ↳ android.util.Disp ...

  6. spring-mvc.xml中的配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. [Android] Web Console: Uncaught TypeError: Object [object Object] has no method 'xxx'

    我们开发的产品,有一部分功能,需要在WebView中打开web页面,然后在web页面中通过js方法回调部分native的功能. 对于web回调native的开发方式,如果不了解的话,可以参考我以前的一 ...

  8. Objective-C( Foundation框架 一 字符串)

    Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...

  9. WCF初探-4:WCF消息交换模式之请求与答复模式

    请求与答复模式( Request/Reply) 这种交换模式是使用最多的一中,它有如下特征: 调用服务方法后需要等待服务的消息返回,即便该方法返回 void 类型 相比Duplex来讲,这种模式强调的 ...

  10. iOS开发UI篇—Quartz2D(自定义UIImageView控件)

    iOS开发UI篇—Quartz2D(自定义UIImageView控件) 一.实现思路 Quartz2D最大的用途在于自定义View(自定义UI控件),当系统的View不能满足我们使用需求的时候,自定义 ...