ViewPager+Handler实现轮播加手势滑动
来源:互联网 发布:证大财富淘宝贷买家贷 编辑:程序博客网 时间:2024/05/14 22:53
package com.example.peng.fuxiqi;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import java.util.ArrayList;import java.util.List;
public class MainActivity extends AppCompatActivity implements Handler.Callback, View.OnTouchListener { private ViewPager mViewPager; private List<ImageView> list; private MyAdapter adapter; private int[] imgarray=new int[]{R.mipmap.txt_theme29,R.mipmap.txt_theme17,R.mipmap.txt_theme26,R.mipmap.txt_theme29,R.mipmap.txt_theme17}; private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewPager = (ViewPager) findViewById(R.id.viewpager_main); initData(); adapter=new MyAdapter(); mViewPager.setAdapter(adapter); handler=new Handler(this); initTime(); setListener(); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { if (list.size()>1){ if (position<1){ position=list.size()-2; mViewPager.setCurrentItem(position,false); }else if (position>(list.size()-2)){ mViewPager.setCurrentItem(1,false); position=1; } } } @Override public void onPageScrollStateChanged(int state) { } }); } private void setListener() { mViewPager.setOnTouchListener(this); } private void initTime() { handler.sendEmptyMessage(0); } private void initData() { list=new ArrayList<>(); for (int i = 0; i <imgarray.length ; i++) { ImageView img=new ImageView(MainActivity.this); img.setImageResource(imgarray[i]); list.add(img); } } @Override public boolean handleMessage(Message msg) { mViewPager.setCurrentItem(mViewPager.getCurrentItem()+1); handler.sendEmptyMessageDelayed(0,3000); return false; }//触摸时handler移除发送消息,抬起时发送消息 @Override public boolean onTouch(View v, MotionEvent event) { handler.removeMessages(0); if (event.getAction()==MotionEvent.ACTION_UP){ handler.sendEmptyMessageDelayed(0,3000); } return false; }//适配器 public class MyAdapter extends PagerAdapter{ @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(list.get(position)); return list.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(list.get(position)); } }}
0 0
- ViewPager+Handler实现轮播加手势滑动
- Android 实现手势滑动界面(ViewPager)
- viewpager实现自动滑动以及手势滑动功能
- ViewPager手势滑动禁用
- ViewPager实现无限循环切换和手势滑动效果
- Android使用ViewPager实现图片轮播和手势滑动
- android ViewPager控件实现手势滑动切换页签
- view实现手势滑动
- ViewFlipper实现手势滑动
- android ViewPager多页面手势滑动
- 背景图片跟随手势滑动的ViewPager
- 封装自定义ViewPager实现左右自动切换和手势滑动效果
- Android之ViewPager+Fragment实现页面点击切换和手势滑动
- 使用ViewPager和Fragment同时实现点击底部Tab切换和手势滑动切换Fragment
- Android之ViewPager+Fragment实现页面点击切换和手势滑动
- viewpager 实现左右滑动
- viewpager实现界面滑动
- ViewPager 实现无限滑动
- jenkins-gitlib 安装使用流程
- 初步认识mysql
- Docker容器无法访问外网的问题
- Cf 362div2 B[Java高精度,scanf数据读入]
- ubuntu AndroiStudio 中 外设(手机、平板) 无法使用
- ViewPager+Handler实现轮播加手势滑动
- LoadRunner获取WEB消息头信息的两个内置变量:REQUEST、RESPONSE
- App Store审核条款更新:WWDC 2016重写版本
- 基于计算机视觉的无人驾驶感知系统
- 自定义Gallery实现QQ附近的人和京东金融选择存款时间效果
- Android ImageLoader网络加载图片
- java 实现CRC
- java解析XML
- qp 中文乱码的设置