仿ios的滚轮选择控件

一切源于抄袭

收集:

https://segmentfault.com/q/1010000002966406

https://github.com/ai212983/android-spinnerwheel

http://www.cnblogs.com/tiantianbyconan/p/3819304.html

https://github.com/wangjiegulu/WheelView

https://segmentfault.com/q/1010000002410595

https://github.com/DavidPizarro/PickerUI

http://www.open-open.com/lib/view/open1444135934026.html


https://github.com/weidongjian/androidWheelView



来自于:http://www.jianshu.com/p/e2b3118d8ca4

一款Android的滚轮控件,从别的项目反编译过来的

字数605  阅读7516  评论19 

几个月就有用过一款请吃饭的APP,很喜欢里面设置年龄和身高的滚轮控件,多次试图从网上搜索到这款滚轮控件,可惜都没有找到,于是就狠下心来自己反编译了一下,幸好,皇天不负苦心人,终于成功了,我应该是第一个把这款控件公开出来的人吧,废话少说,先看效果图……

仿ios的滚轮选择控件_第1张图片
device-2015-09-03-092014.png
仿ios的滚轮选择控件_第2张图片
insta.gif

效果是不是很惊艳啊,跟其他的滚轮控件有以下几点我喜欢的

  • 滑动的速率适中,很多滚轮控件,手指稍微一划,数据就跑的很快,跟listview一样,可是滚轮控件一般数据量比较少,而且目的是为了选中需要的选项,这款滚轮控件的滑动速度我很喜欢
  • 全屏的滑动操控:就是当你在滚轮区域按下手指,滑动滚轮控件的时候,当你的手指滑动到滚轮区域外面的地方,也可以控制滚轮的滑动,very good,实现方法是拦截了ACTION_MOVE这个事件,所以整个大屏幕都可以作为滚轮控件的滑动控制
  • 字体的折叠效果,和选中时候的折射效果,这个真的是跟原生的iOS几乎一致的,其他网上说的仿照iOS的滚轮,我觉得都是骗人的

好了,最后说下这款滚轮控件的用法,整个控件是个LoopView,用法非常简单,查看下面的代码注释:

LoopView loopView = new LoopView(this);
        ArrayList list = new ArrayList();
        for (int i = 0; i < 15; i++) {
            list.add("item " + i);
        }
        //设置是否循环播放
        loopView.setNotLoop();
        //滚动监听
        loopView.setListener(new LoopListener() {
            @Override
            public void onItemSelect(int item) {
                Log.d("debug", "Item " + item);
            }
        });
        //设置原始数据
        loopView.setArrayList(list);
        //设置初始位置
        loopView.setPosition(5);
        //设置字体大小
        loopView.setTextSize(30);
        rootview.addView(loopView, layoutParams);

使用方法非常简单的,看代码的注释就可以了,我这里为了演示,估计把自己设置的很大

这款控件因为是反编译的,所以源码还有很多被混淆的地方,没有编译出原始的意思,但一些关键的字段我是解析出来的,至于具体的使用,我测试了下,是没有问题的。

源码我放在了Gitbub,欢迎查看




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

自己转eclipse的项目:


你可能感兴趣的:(仿ios的滚轮选择控件)