iOS的SwitchButton深入人心,也被Android上的产品设计借鉴,在Android4.0中,系统就带有原生的Switch控件了。但是在老版本的Android上,怎样实现这个功能呢?
最简单的方法就是,把SwitchButton看成是个CheckBox或者ToggleButton,直接设置button属性或者background属性就可以。
<?xml version="1.0" encoding="utf-8"?>

但是这样实现,并没有像iOS上那样的滑动动画效果。下面介绍两种自定义的SwitchButton的控件的开源库。
http://ankri.de/switch-button-for-android-2-3-gingerbread/  
这篇博文中详细介绍了其实现方法,也可以下载到源代码。这个可以用手拖动开关,效果非常接近了。但是也是有缺点的,不能实现背景移动,其背景是一个ProgressDrawable。
https://github.com/Issacw0ng/SwitchButton
这个是我坚果的最完美模拟iOS效果的SwitchButton。可以实现拖动,背景也可以跟着拖动。但是代码的实现上不是那么严谨,不能调整大小,不能灵活自定义样式。

这两个的实现原理基本类似,代码也比较少,有兴趣的同学可以研究一下源代码,非常值得学习的开源项目。

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. python list.sort()根据多个关键字排序的方法实现
  3. android EditText设置不可写
  4. Android(安卓)拨号器的简单实现
  5. android实现字体闪烁动画的方法
  6. Android中不同应用间实现SharedPreferences数据共享
  7. [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o
  8. android 拨打紧急号码,通话时开启免提功能实现
  9. Android(安卓)组件资源库

随机推荐

  1. 彻底了解Android中的内部存储与外部存储
  2. 手机Root后如何拿取data/data目录下的文
  3. Android中的FrameBuffer
  4. Android自定义控件基本原理详解(一)
  5. Android数据存储(五) SQLite数据库在Androi
  6. android初学者必须掌握的Activity状态的
  7. android Bitmap、Drawable、byte[]相互转
  8. ffmpeg--把一个eclipse目录结构的Android
  9. 如何去写Android(安卓)init.rc (Android(
  10. Android的内存分配、管理、OOM这一篇文章