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 ...
随机推荐
- CoreText原理及基本使用方法
关于富文本的排版也是现在的一个技术点,以下是近日关于CoreText的学习记录以及个人理解,希望能对正在学习CoreText的朋友起到帮助. 1.框架坐标系 首先让我们先来看看CoreText坐标系和 ...
- jQuery改变兄弟元素样式,及:not([class="allclassname"])筛选小结
以前一直对于jquery感到很畏惧,最近做点击图表变色,将其他元素图片复位的小需求,总结了一下一点小心得. 主要两点是:1.将所有兄弟元素的样式设置为一样,对于子元素的遍历: 2.对于特殊不需要变化的 ...
- text-overflow:ellipsis
关键字: text-overflow:ellipsis 语法:text-overflow : clip | ellipsis 取值: clip :默认值 .不显示省略标记(...),而是简单的裁切. ...
- BitMap存储jpg到手机sd卡中
/** * 将BitMap转成Jpeg图片保存到sdcard(便于以后debug调试查看和裁切调试) */ private void saveBitmap(Bitmap bitmap, String ...
- 横向滑动的HorizontalListView滑动指定位置的解决方法
项目中用到了自定义横向滑动的控件:HorizontalListView,点击其中一项,跳转到另外一个大图界面,大图界面也是HorizontalListView,想使用setSelection方法设定 ...
- zoj 1789 The Suspects
好高兴,又AC一道 ,不过是很类似的两道..还是好高兴呀思想跟2833是一样的,不过要重新设计输入和输出.老师上课又重新讲解了一下,因为嫌疑人已知是0,所以加入集中时应该默认让数值小的做树根,即最终让 ...
- C/C++ http协议加载sessionID
很多时候,使用一个既定的API虽然可以去完成一些任务,但是还是不如自己写来的那么随性和自由. http协议,最常用的get,post两种方式传输数据,关于post,有时候,需要用到加载cookie信息 ...
- [转载]MySQL将DateTime时间类型格式化
DATE_FORMAT(date,format) 根据format字符串安排date值的格式. select from_unixtime(time,'%Y-%m-%d %H:%i:%s'); ...
- 编译安装php 5.5 缺少依赖包 及解决方案
必要时可以用 YUM 选择安装以下相关软件包: #yum install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel ...
- input输入框输入文字出现清空文字按钮
$("#J_UserName").keyup(function(){ if($("#J_UserName").val() == "" || ...