基本信息
源码名称:android ViewPager 左右双向滑动 实例源码
源码大小:2.45M
文件格式:.zip
开发语言:Java
更新时间:2014-08-08
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
package com.wh.viewpagermove; import java.util.ArrayList; import java.util.List; import java.util.Timer; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; public class MainActivity extends Activity { List<View> mlist = new ArrayList<View>(); AdvAdapter mAdapterPIC; int count = 0; ViewPager viewPager; Timer timer; Thread mThread; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) this.findViewById(R.id.mviewpager); ImageView img1 = new ImageView(this); ImageView img2 = new ImageView(this); ImageView img3 = new ImageView(this); ImageView img4 = new ImageView(this); img1.setImageResource(R.drawable.logo_qq); img2.setImageResource(R.drawable.logo_qzone); img3.setImageResource(R.drawable.logo_shortmessage); img4.setImageResource(R.drawable.logo_wechat); mlist.add(img1); mlist.add(img2); mlist.add(img3); mlist.add(img4); mAdapterPIC = new AdvAdapter(mlist); viewPager.setAdapter(mAdapterPIC); // viewPager.setOnPageChangeListener(mOnPageChangeListener); viewPager.setCurrentItem(5000); // 增加手势 viewPager.setOnTouchListener(mOnTouchListener); mThread = new Thread(runnable); mThread.start(); } OnTouchListener mOnTouchListener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_UP: Message message = new Message(); message.what = 3; handler.sendMessage(message); break; case MotionEvent.ACTION_DOWN: Log.i("hh", "DOWN"); Message message1 = new Message(); message1.what = 2; handler.sendMessage(message1); break; default: break; } return false; } }; Runnable runnable = new Runnable() { @Override public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; Handler handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 1: viewPager.setCurrentItem(viewPager.getCurrentItem() 1); handler.removeCallbacks(runnable); handler.postDelayed(runnable, 3000); break; case 2: handler.removeCallbacks(runnable); break; case 3: handler.removeCallbacks(runnable); handler.postDelayed(runnable, 3000); break; } super.handleMessage(msg); } }; // 向右边滑动无限循环 private final class AdvAdapter extends PagerAdapter { private List<View> views = null; public AdvAdapter(List<View> views) { this.views = views; count = views.size(); } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(views.get(arg1 % views.size())); } @Override public void finishUpdate(View arg0) { } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public Object instantiateItem(View arg0, int arg1) { try { ((ViewPager) arg0).addView(views.get(arg1 % views.size()), 0); } catch (Exception e) { } return views.get(arg1 % views.size()); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public Parcelable saveState() { return null; } @Override public void startUpdate(View arg0) { } } }