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

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

device-2015-09-03-092014.png
insta.gif

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

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

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

LoopView loopView = new LoopView(this);
        ArrayList<String> 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,欢迎查看

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • #导入包 import pandas as pd import numpy as np df=pd.DataFr...
    欣欣_e7a2阅读 1,094评论 0 0
  • 最近去了一个公司,刚到公司时,公司的出纳还有一个星期的实习期就可以转正了,可是就这时她被告知要辞退了,她问一个叫张...
    木晴一阅读 1,450评论 0 0
  • 土红的的塑胶跑道上,白线一一划过,切成了无数条汇聚到夕阳那的线。看起来是无比的遥远,起码在我看来!一道...
    仔木阅读 3,114评论 2 7
  • 有道是:中年心事浓如酒,少时情怀总是诗。早过了诗的年龄,慢慢地与酒结下不解之缘,虽量不大,但每餐都割舍不下。记得那...
    天云lty阅读 5,424评论 7 5
  • 大陈和小李两口子又在吵架,还听到了摔盘子打碗的声响。小李骂大陈混账,大陈说小李是泼妇。 小李说:“我还真的羡慕泼妇...
    学着忘记阅读 5,531评论 29 61

友情链接更多精彩内容