Android原生的开关,单从视觉上来看已经不能满足我们日常App的需求了,所以很多时候,App的开关按键会选择自定义,那么今天,我就分享一下我的学习成果。
自定义开关,它实现了这样的效果,第一:可以 通过点击选择开关;第二,可以通过滑动选择开关。先看一下效果gif:
这是通过点击选择开关的gif效果:
这是通过滑动选择开关的效果:
其实学习过后发现,实现自定义的原理是非常的简单的,这个自定义的开关,其实归根到底是两张图片:
那张带有“开关”字样的图片(以下简称A)拿来打底做背景,按钮样式的图片(以下简称B)就盖在它的上方,然后对B实现点击/滑动事件之后,就刚好可以盖住背景A,从而达到了我们一个视觉上开或者关的效果。
以下是代码部分:
public class MyButton extends View implements View.OnClickListener {
private Bitmap bgBm;//背景
private Bitmap slidingBm;//滑动开关
private int slidingMax;//滑动的最大距离
private Paint paint;//画笔
private float slidingLeft;//距离左边的距离
private float startX;//开始时X的位置
private boolean isOpen = false;//true为开 false为关
private boolean isClick = true;//true点击事件生效 false滑动事件生效
private float lastX;//移动中X的最后位置
public MyButton(Context context, AttributeSet attrs) {
super(context, at