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

泡在网上的日子 / 文 发表于2015-09-04 01:01 第次阅读 滚轮

原文出处:http://www.jianshu.com/p/e2b3118d8ca4 

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

43468-ddcbc9fd60003996.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,欢迎查看


收藏 赞 (3) 踩 (0)
上一篇:固定在ScrollView顶部的View,类似于新浪微博的评论列表的顶部
现在很多App都实现了这个功能,例如新浪微博评论页面的评论、转发、赞的数字可以固定在屏幕上方。我个人很喜欢这种设计,所以利用一点空余时间简单实现了一个类似的功能。
下一篇:打造双向滑动的ScrollView
原文出处: http://blog.csdn.net/dantestones/article/details/47659411 注:这个ScrollView是自定义FrameLayout实现的,性能方面可能不如sdk中的ScrollView,但是这是一个学习自定义布局、自定义view、手势处理的实例教程。而且对于性能要求不高的场景,滚