本文摘抄自: 链 接
感觉原文有些东西,介绍的不详细,所以自己整理了下。
(因为有些博主写自定义控件,讲了很多思路后,最后给出的东西,结果连控件的长和宽都不能设置)
高仿ios开关的例子源码。
功能:
1、可以设置button的大小(缺点:只能长宽保持同比例,设置button的长和宽,)
2、可以实现拖动功能(ps:有些人写的不可以的,我这里先说明出来,懒得大家浪费时间)
2、因为此自定义控件是extendeds ChexBox写的,所有相关方法都有。比如:(有些只是继承View写的,只有点击事件,也不是不可以,只是比较麻烦而已)
switch2.setEnabled(false);//设置不可点击
//设置监听
switch1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
<span style="white-space:pre"> </span>if (isChecked) {
<span style="white-space:pre"> </span>Toast.makeText(TestActivity.this, "开启", Toast.LENGTH_SHORT).show();
<span style="white-space:pre"> </span>} else {
<span style="white-space:pre"> </span>Toast.makeText(TestActivity.this, "关闭", Toast.LENGTH_SHORT).show();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
});
演示gif:
大概就这样,如果是想用CheckBox控件,我觉得这个还挺简单方便的。
本文提供了一个高度模仿iOS风格的开关控件实现方案。该控件基于CheckBox进行扩展,支持自定义大小(长度和宽度需保持比例一致),并具备拖动功能。此外,文章还展示了如何设置监听器以响应开关状态的变化。
460

被折叠的 条评论
为什么被折叠?



