
这篇是在实现了使用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+"页");
}
}
}
代码跟上一篇差不多,大家自己研究吧!下面看下效果:
以上是内存溢出为你收集整理的使用ViewPager实现左右循环滑动及滑动跳转全部内容,希望文章能够帮你解决使用ViewPager实现左右循环滑动及滑动跳转所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)