android之ViewPager
在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的更多相关文章
- Android中viewPager的一两点使用
Android中viewPager的一两点使用 viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用.这里只简单说下直接使用. 使用viewP ...
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
- Android listview viewpager解决冲突 滑动
Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 在listview 上使用 addHeaderView 在第 ...
- Android 使用ViewPager实现左右循环滑动图片
ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1. 首先看一 ...
- android使用ViewPager实现欢迎引导页
android使用ViewPager实现欢迎引导页 大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面.当第二次启动的时候,则直接进入主界面. 这种效果一 ...
- android下ViewPager的使用,带下部选项栏的切换动画
(文章针对类似我这种初学者,大神看到不要嘲笑) 演示 我的规矩是先上GIF动画效果(Linux下用转的GIF,清晰度还可以但是不知道为什么放博客上,界面会这么大): 代码: android中有View ...
- Android中ViewPager实现滑动条及与Fragment结合的实例教程
ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ...
- Android 使用ViewPager 做的半吊子的图片轮播
Android 使用ViewPager 做的半吊子的图片轮播 效果图 虽然不咋样,但是最起码的功能是实现了,下面我们来一步步的实现它. 界面 下面我们来分析一下界面的构成 整体的布局: 因为我们要做出 ...
- 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题
ViewPager是android-support-v4.jar包中的一个系统控件,继承自ViewGroup,专门用以实现左右滑动切换View的效果,使用时需要首先在Project->prope ...
随机推荐
- 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
一.自定义dialog. 二.实现dialog里view的事件监听 1.自定义dialog比较简单.在实例化new的时候,加入样式,布局就行了.或者重写dialog. 2.实现dialog里view的 ...
- Linux线程的实现 & LinuxThread vs. NPTL & 用户级内核级线程 & 线程与信号处理
另,线程的资源占用可见:http://www.cnblogs.com/charlesblc/p/6242111.html 进程 & 线程的很多知识可以看这里:http://www.cnblog ...
- [原创] RT7 Lite win7旗舰版精简方案
[原创] RT7 Lite win7旗舰版精简方案 墨雪SEED 发表于 2016-1-26 21:23:54 https://www.itsk.com/thread-362912-1-5.html ...
- BZOJ1996 [Hnoi2010]chorus 合唱队
很容易想到区间DP 然后发现这个区间只和圆序列的最后一个数有关,而原序列的最后一个数只可能是现在区间的头或者尾 令$f[i][j][0/1]$表示在区间$[i, j]$之间,原序列的最后一个数是当前区 ...
- [转]虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
VMware网络配置详解一:三种网络模式简介 安装好虚拟机以后,在网络连接里面可以看到多了两块网卡: 其 中VMnet1是虚拟机Host-only模式的网络接口,VMnet8是NAT模式的网络接口,这 ...
- SEO命令之”site“运用详解
一.“site”基本介绍: 都知道要想查询一个特定网站的收录状况一般会分为两种情况:一.结果中有返回数据,则表明该网站已被收录:二.如果返回数据为空,则该网站未被收录.如果是以前已被收录的,现在来查没 ...
- DBAccess
01.单SQL执行.DBA.ExeuteSQL(SQL语句,是否返回值,是否事务处理,返回值<字符型>):Boolean; -- 执行SQL后,将影响的行数进行返回 02.批量SQL执行. ...
- 使用squid配置透明代理并对上网行为进行控制
使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_64 1.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假 ...
- GCC编译器编译链接
在gcc编译器环境下,常见的文件扩展名的含义如下: .c:C源程序,经过预编译后的源程序也为.c文件,它可以通过-E参数输出. .h:头文件 .s:经过编译得到的汇编程序代码,它可以通过-S参数输出. ...
- Sql获取第一天、最后一天
昨天面试一家公司,上机题目中要求获取每月最后一笔订单.用到了日期的选择性查询,回来在ITeye上找到了这篇文章. 原文: http://new-fighter.iteye.com/blog/17587 ...