Android自定义控件实现滑动开关效果自定义控件实现滑动开关效果
主要介绍了Android自定义控件实现滑动开关效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
自定义开关控件
Android自定义控件一般有三种方式
1、继承Android固有的控件,在Android原生控件的基础上,进行添加功能和逻辑。
2、继承ViewGroup,这类自定义控件是可以往自己的布局里面添加其他的子控件的。
3、继承View,这类自定义控件没有跟原生的控件有太多的相似的地方,也不需要在自己的肚子里添加其他的子控件。
ToggleView自定义开关控件表征上没有跟Android原生的控件有什么相似的地方,而且在滑动的效果上也没有沿袭Android原
生的地方,所以我们的自定义ToggleView选择继承View
同样的自定义控件需要复写三个构造方法
//在布局中使用该控件的时候,而且有额外的style属性的时候调用该构造方法,
public ToggleView(Context context, AttributeSet attrs, int defStyle);
//在布局中使用该控件的时候调用该构造方法
public ToggleView(Context context, AttributeSet attrs)
//在Java代码中直接new该控件的时候,调用该构造方法
public ToggleView(Context context)
因为是自定义的控件,所以属性还是自己定义的比较好用一些。我们这里定义三个属性
1、背景图片
2、滑块的图片
3、布局中默认的开关的状态
所以就需要用到了自定义属性
在values目录下,新建xml文件,attrs.xml
在里面定义自己的属性
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="toggle">
<attr name="switchBackground" format="reference" />
<attr name="slidingBackground" format="reference" />
<attr name="toggleState" format="boolean" />
</declare-styleable>
</resources>
<declare-styleable name属性>是可以在R文件中找到该属性名称的