Android中实现类似iOS的SwitchButton控件
16lz
2022-07-03
iOS的SwitchButton深入人心,也被Android上的产品设计借鉴,在Android4.0中,系统就带有原生的Switch控件了。但是在老版本的Android上,怎样实现这个功能呢?
最简单的方法就是,把SwitchButton看成是个CheckBox或者ToggleButton,直接设置button属性或者background属性就可以。
但是这样实现,并没有像iOS上那样的滑动动画效果。下面介绍两种自定义的SwitchButton的控件的开源库。
1 http://ankri.de/switch-button-for-android-2-3-gingerbread/
这篇博文中详细介绍了其实现方法,也可以下载到源代码。这个可以用手拖动开关,效果非常接近了。但是也是有缺点的,不能实现背景移动,其背景是一个ProgressDrawable。
2 https://github.com/Issacw0ng/SwitchButton
这个是我坚果的最完美模拟iOS效果的SwitchButton。可以实现拖动,背景也可以跟着拖动。但是代码的实现上不是那么严谨,不能调整大小,不能灵活自定义样式。
这两个的实现原理基本类似,代码也比较少,有兴趣的同学可以研究一下源代码,非常值得学习的开源项目。
最简单的方法就是,把SwitchButton看成是个CheckBox或者ToggleButton,直接设置button属性或者background属性就可以。
<?xml version="1.0" encoding="utf-8"?>
但是这样实现,并没有像iOS上那样的滑动动画效果。下面介绍两种自定义的SwitchButton的控件的开源库。
1 http://ankri.de/switch-button-for-android-2-3-gingerbread/
这篇博文中详细介绍了其实现方法,也可以下载到源代码。这个可以用手拖动开关,效果非常接近了。但是也是有缺点的,不能实现背景移动,其背景是一个ProgressDrawable。
2 https://github.com/Issacw0ng/SwitchButton
这个是我坚果的最完美模拟iOS效果的SwitchButton。可以实现拖动,背景也可以跟着拖动。但是代码的实现上不是那么严谨,不能调整大小,不能灵活自定义样式。
这两个的实现原理基本类似,代码也比较少,有兴趣的同学可以研究一下源代码,非常值得学习的开源项目。
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- python list.sort()根据多个关键字排序的方法实现
- android EditText设置不可写
- Android(安卓)拨号器的简单实现
- android实现字体闪烁动画的方法
- Android中不同应用间实现SharedPreferences数据共享
- [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o
- android 拨打紧急号码,通话时开启免提功能实现
- Android(安卓)组件资源库