使用ViewPager实现左右循环滑动及滑动跳转

使用ViewPager实现左右循环滑动及滑动跳转,第1张

概述前面一篇文章实现了使用ViewPager实现高仿launcher拖动效果,后来很多朋友问能不能实现左右循环滑动效果和引导页面。今天实现了左右滑动,至于在最后一页滑动跳转,这个也做了但是效果不是太好,也希望有实现的朋友能 前面一篇文章实现了使用VIEwPager实现高仿launcher拖动效果 ,后来很多朋友问能不能实现左右循环滑动效果和引导页面。今天实现了左右滑动,至于在最后一页滑动跳转,这个也做了但是效果不是太好,也希望有实现的朋友能够分享下。在最后一页添加一张图片单击跳转,这个认为很简单大家自己添加个图片,点击后跳转就OK。

这篇是在实现了使用VIEwPager实现高仿launcher拖动效果的基础上做了一些小的修改,可以参照前面的。废话不多说了,直接上代码吧!

首先看一些layout下的xml
复制代码 代码如下:
<?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/vIEwPager"
androID:layout_wIDth="fill_parent"
androID:layout_height="wrap_content" />
<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="30dp"
androID:gravity="center_horizontal"
androID:orIEntation="horizontal" >
</linearLayout>
</relativeLayout>
</FrameLayout>

和前面一页使用vIEwpager。使用VIEwPager首先需要引入androID-support-v4.jar这个jar包。自己不要忘记加。
下面是核心代码:
复制代码 代码如下:
package cn.com.karl.vIEwpager;
import java.util.ArrayList;
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.util.Log;
import androID.vIEw.LayoutInflater;
import androID.vIEw.VIEw;
import androID.vIEw.VIEwGroup;
import androID.vIEw.VIEwGroup.LayoutParams;
import androID.vIEw.Window;
import androID.Widget.ImageVIEw;
public class MainActivity extends Activity {
VIEwPager vIEwPager;
ArrayList<VIEw> List;
VIEwGroup main,group;
ImageVIEw imageVIEw;
ImageVIEw[] imageVIEws;
private static int c_ID = 0;
@OverrIDe
public voID onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestwindowFeature(Window.FEATURE_NO_Title);
LayoutInflater inflater = getLayoutInflater();
List = new ArrayList<VIEw>();
List.add(inflater.inflate(R.layout.item1,null));
List.add(inflater.inflate(R.layout.item2,null));
List.add(inflater.inflate(R.layout.item3,null));
List.add(inflater.inflate(R.layout.item4,null));
List.add(inflater.inflate(R.layout.item5,null));
imageVIEws = new ImageVIEw[List.size()];
VIEwGroup main = (VIEwGroup) inflater.inflate(R.layout.main,null);

VIEwGroup group = (VIEwGroup) main.findVIEwByID(R.ID.vIEwGroup);
vIEwPager = (VIEwPager) main.findVIEwByID(R.ID.vIEwPager);
for (int i = 0; i < List.size(); i++) {
imageVIEw = new ImageVIEw(MainActivity.this);
imageVIEw.setLayoutParams(new LayoutParams(12,12));
//imageVIEw.setpadding(10,10,0);
imageVIEws[i] = imageVIEw;
if (i == 0) {

imageVIEws[i].setBackgroundResource(R.drawable.guIDe_dot_white);
} else {
imageVIEws[i].setBackgroundResource(R.drawable.guIDe_dot_black);
}
group.addVIEw(imageVIEw);
}
setContentVIEw(main);
vIEwPager.setAdapter(new MyAdapter());
vIEwPager.setonPagechangelistener(new MyListener());
vIEwPager.setCurrentItem(300);

}
class MyAdapter extends PagerAdapter {
@OverrIDe
public int getCount() {
return Integer.MAX_VALUE;
}
@OverrIDe
public boolean isVIEwFromObject(VIEw arg0,Object arg1) {
return arg0 == arg1;
}
@OverrIDe
public int getItemposition(Object object) {
// Todo auto-generated method stub
return super.getItemposition(object);
}
@OverrIDe
public voID destroyItem(VIEw arg0,int arg1,Object arg2) {
// Todo auto-generated method stub
//((VIEwPager) arg0).removeVIEw(List.get(arg1));
}
@OverrIDe
public Object instantiateItem(VIEw arg0,int arg1) {
// Todo auto-generated method stub
try{
((VIEwPager) arg0).addVIEw(List.get(arg1%List.size()),0);
}catch (Exception e) {
// Todo: handle exception
}
return List.get(arg1%List.size());
}
@OverrIDe
public voID restoreState(Parcelable arg0,ClassLoader arg1) {
// Todo auto-generated method stub
}
@OverrIDe
public Parcelable saveState() {
// Todo auto-generated method stub
return null;
}
@OverrIDe
public voID startUpdate(VIEw arg0) {
// Todo auto-generated method stub
}
@OverrIDe
public voID finishUpdate(VIEw arg0) {
// Todo auto-generated method stub
}
}
class MyListener implements OnPagechangelistener {
//当滑动状态改变时调用
@OverrIDe
public voID onPageScrollStateChanged(int arg0) {
// Todo auto-generated method stub
//arg0=arg0%List.size();

}
//当当前页面被滑动时调用
@OverrIDe
public voID onPageScrolled(int arg0,float arg1,int arg2) {
// Todo auto-generated method stub

}
//当新的页面被选中时调用
@OverrIDe
public voID onPageSelected(int arg0) {
if(arg0>2){
arg0=arg0%List.size();
}
c_ID = arg0;
for (int i = 0; i < imageVIEws.length; i++) {
imageVIEws[arg0]
.setBackgroundResource(R.drawable.guIDe_dot_white);
if (arg0 != i) {
imageVIEws[i]
.setBackgroundResource(R.drawable.guIDe_dot_black);
}
}

Log.e("-------------","当前是第"+c_ID+"页");
}
}
}

代码跟上一篇差不多,大家自己研究吧!下面看下效果:

 

忘记了,这种效果不太好用图片演示,大家自己演示吧!滑动到最后一张,再滑动就是进入了第一页。下面看下我logcat下的打印:


这里默认是从第0页开始的。 您可能感兴趣的文章:android 通过向viewpage中添加listview来完成滑动效果(类似于qq滑动界面)Android中实现水平滑动(横向滑动)ListView示例自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果RecyclerView滑动到指定Position的方法解析Android中实现滑动翻页之ViewFlipper的使用详解Android利用ViewPager实现滑动广告板实例源码Android中RecyclerView实现横向滑动代码Android App中ViewPager所带来的滑动冲突问题解决方法Android App中使用ViewPager+Fragment实现滑动切换效果Android中ViewPager带来的滑动卡顿问题解决要点解析Android使用View实现主要6种滑动效果的方法 总结

以上是内存溢出为你收集整理的使用ViewPager实现左右循环滑动及滑动跳转全部内容,希望文章能够帮你解决使用ViewPager实现左右循环滑动及滑动跳转所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1142755.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存