可自动切换的轮播图(包含位置指示)
来源:互联网 发布:java游戏服务端源码 编辑:程序博客网 时间:2024/05/22 03:40
public class CarouselView extends RelativeLayout {public CarouselView(Context context, AttributeSet attrs) {super(context, attrs);init();}private ScheduledExecutorService executor;private CirclePageIndicator indicator;private ViewPager viewPager;ArrayList<ImageView> list;private ArrayList<? extends View> views;private void init() {LayoutInflater.from(getContext()).inflate(R.layout.layout_carouseview,this);viewPager = (ViewPager) findViewById(R.id.carouseview);indicator = (CirclePageIndicator) findViewById(R.id.carouseview_indicator);}float start_x = 0, start_y = 0, end_x = 0, end_y = 0;public void setData(ArrayList<? extends View> views,ViewPagerAdapter adapter) {this.views = views;viewPager.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {int action = event.getAction();if (action == MotionEvent.ACTION_DOWN) {// toast("down");// Log.i("zhuxu", "down");start_x = event.getX();start_y = event.getY();} else if (action == MotionEvent.ACTION_UP) {// toast("up");// Log.i("zhuxu", "up");end_x = event.getX();end_y = event.getY();} else if (action == MotionEvent.ACTION_MOVE) {// Log.i("zhuxu", "move : " + "start_x : " + start_x// + "start_y : " + start_y + "end_x : " + end_x// + "end_y : " + end_y);// toast("move");// if (Math.abs(end_x - start_x) > 50 && Math.abs(end_y -// start_y) < 100) {if (Math.abs(end_x - start_x) > Math.abs(end_y - start_y)) {// Log.i("zhuxu", "横向移动!");//此句代码是为了通知他的父View 现在进行的是本控件的操作,不要对我的操作进行干扰v.getParent().requestDisallowInterceptTouchEvent(true);return false; // 是否需要View继续处理} else {//接近垂直滑动,交给父控件处理v.getParent().requestDisallowInterceptTouchEvent(false);// Log.i("zhuxu", "纵向移动!");return true; // 是否需要View继续处理}}return false;}});viewPager.setAdapter(adapter);indicator.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {isChanged = true;}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}});indicator.setViewPager(viewPager);}public ViewPager getCarouselView() {return viewPager;}public void startCarouse() {executor = Executors.newSingleThreadScheduledExecutor();executor.scheduleWithFixedDelay(new ViewpagerTask(),2,3, TimeUnit.SECONDS);}public void cancleCarouse() {if (executor != null)executor.shutdown();}private int currentItem = 0;private boolean isChanged = false;private class ViewpagerTask implements Runnable {@Overridepublic void run() {if (isChanged) {isChanged = !isChanged;} else {currentItem = (viewPager.getCurrentItem() + 1) % views.size();post(new Runnable() {public void run() {viewPager.setCurrentItem(currentItem);}});}}}}
0 1
- 可自动切换的轮播图(包含位置指示)
- 安卓自定义view,实现页面切换的位置指示动画
- Android 轮播图的实现 自动+手动滑动+指示+点击事件
- android自定义无限轮播的轮播图,可动态添加指示点,可点击跳转页面
- 一个ViewPager的页面切换指示控件
- 可自动切换选项卡
- ViewPager+Fragment添加一行若干小红球滚动指示器指示当前ViewPager翻阅位置(可供第三方使用的类)
- UIScrollView+UIPageControl+NSTimer实现图片的自动滑动以及用户可手动切换,UIPageControl可点击
- UIScrollView+UIPageControl+NSTimer实现图片的自动滑动以及用户可手动切换,UIPageControl可点击
- UIScrollView+UIPageControl+NSTimer实现图片的自动滑动以及用户可手动切换,UIPageControl可点击
- UIScrollView+UIPageControl+NSTimer实现图片的自动滑动以及用户可手动切换,UIPageControl可点击
- UIScrollView+UIPageControl+NSTimer实现图片的自动滑动以及用户可手动切换,UIPageControl可点击
- 页面位置的切换
- U3D 战斗场景中怪物位置的箭头指示
- 3.4.1_指示文本输入位置的光标
- 魔镜VR位置切换和自动漫游
- 轮播图的指示点材料
- 指示项,轮播图,圆角图片可拉伸,popwindow
- 硬件调试
- 【备份】Java实现忽略SSL认证请求https
- 315. Count of Smaller Numbers After Self
- Andorid 配置 Annotations
- c_str()
- 可自动切换的轮播图(包含位置指示)
- Android 数据存储之SharedPreferences存储小记
- Runtime全方位装逼指南
- 磐优—— 抬走,下一个!
- cf348E
- 超级简单的maven安装配置教程
- lintcode----加一
- C# 不安装客户端 连接Oracle 10G
- 设计模式总结之单例模式