Android SwitchButton 开关按钮
2014-11-28 09:27
477 查看
写了一个开关按钮继承ImageButton,开关状态发生改变时切换图片资源(非滑动效果)。可以 需要滑动效果的可以看
xiaanming android自定义滑动开关控件,适合所有的android系统;共享给大家 方便大家直接加到工程中;
运行截图:
![](https://img-blog.csdn.net/20141128094438093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTHgwMDE3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
代码很简单,也不需要我讲解什么了,直接上源码:
源码下载
xiaanming android自定义滑动开关控件,适合所有的android系统;共享给大家 方便大家直接加到工程中;
运行截图:
代码很简单,也不需要我讲解什么了,直接上源码:
/** * 具有开关效果的ImageButton * @param IsTurnOn Boolean 当前状态 true是开,false 是关; * @param offSrc ResourceId 状态为关的 图片资源ID * @param onSrc ResourceId 状态为开的 图片资源ID * @param switchListeneer 开关按钮点击监听器 * @Email lx0017@163.com * @date 2014-11-27 * @author leo * */ public class SwitchButton extends ImageButton { private boolean isTurnOn=false; //当前状态 true是开,false 是关; private int turnOnResource = 0; //状态为开的 图片资源ID private int turnOffResource = 0; //状态为关的 图片资源ID private OnSwitchListener onSwitchListener; //开关按钮点击监听器 public SwitchButton(Context context) { this(context,null); } public SwitchButton(Context context, AttributeSet attrs) { this(context, attrs,0); } public SwitchButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub //获取属性 TypedArray typedArray = context.obtainStyledAttributes(attrs, com.leo.switchbutton.R.styleable.SwitchButton, defStyle, 0); int n = typedArray.getIndexCount(); for (int i = 0; i < n; i++) { int attr = typedArray.getIndex(i); switch (attr) { case R.styleable.SwitchButton_IsTurnOn: isTurnOn = typedArray.getBoolean(attr, false); break; case R.styleable.SwitchButton_offSrc: turnOffResource = typedArray.getResourceId(attr, 0); break; case R.styleable.SwitchButton_onSrc: turnOnResource = typedArray.getResourceId(attr, 0); break; } } init(); } private void init() { changeRes(isTurnOn); setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub isTurnOn = !isTurnOn; changeRes(isTurnOn); if(null!=onSwitchListener) onSwitchListener.onSwitch(v, isTurnOn); } }); } /** * 更具状态 更换图片资源 * @param isTurnOn */ private void changeRes(boolean isTurnOn) { if (isTurnOn) { setImageResource(turnOnResource); } else { setImageResource(turnOffResource); } } public interface OnSwitchListener { void onSwitch(View v, boolean isTurnOn); } public void setTurnOn(boolean isTurnOn) { this.isTurnOn = isTurnOn; changeRes(isTurnOn); } public void setTurnOnResource(int turnOnResource) { this.turnOnResource = turnOnResource; changeRes(isTurnOn); } public void setTurnOffResource(int turnOffResource) { this.turnOffResource = turnOffResource; changeRes(isTurnOn); } public void setOnSwitchListener(OnSwitchListener onSwitchListener) { this.onSwitchListener = onSwitchListener; } }
源码下载
相关文章推荐
- Android基础入门教程——2.3.6 开关按钮ToggleButton和开关Switch
- Android控件之ProgressBar(进度条),ToggleButton/SwitchBar(开关按钮),SeekBar(拖动条)/RatingBar(等级评分)
- Android学习路之开关按钮ToggleButton和开关Switch
- Android入门教程二十八之开关按钮ToggleButton和开关Switch
- android-UI组件实例大全(五)------开关按钮ToggleButton和开关Switch
- Android 自定义实现switch开关按钮
- 状态开关按钮(ToggleButton)和开关(Switch)的功能与用法
- SwitchButton 开关按钮 的多种实现方式 (附源码DEMO)
- 状态开关按钮(ToggleButton)和开关(Switch)的功能与用法
- 状态开关按钮(ToggleButton)和开关(Switch)
- android click事件中获取 Button文本 从一个按钮开关中获取文本
- Android ToggleButton Example--开关按钮
- Android ToggleButton Example--开关按钮
- Toggle Buttons(SwitchButton),开关按钮
- Android自定义View基础篇(三)之SwitchButton开关
- SwitchButton 开关按钮 的多种实现方式 (附源码DEMO)
- 开关按钮(ToggleButton&Switch)
- android获取Button文本 从一个按钮开关中获取文本
- 状态开关按钮(ToggleButton)与 开关(Switch)的功能与用法
- Android 自定义实现switch开关按钮