简介
自定义控件步骤:
1. 写类继承View
2. 重写onDraw, 进行绘制
3. 重新onMeasure,修改尺寸 要使用 setMeasuredDimension设置当前自定义View的大小
4. 在xml布局文件中配置
可能需要重写的方法:
测量:onMeasure 设置自己显示在屏幕上的宽高 在重写这个方法时,必须调用setMeasuredDimension(int, int)来存储测量得到的宽度和高度值
布局:onLayout 设置自己显示在屏幕上的位置(只有在自定义ViewGroup中才用到) 需要调用各自的layout(int, int, int, int)方法绘制:onDraw 控制显示在屏幕上的样子(自定义viewgroup时不需要这个)
View和ViewGroup的区别
1.他们都需要进行测量操作
2.ViewGroup主要是控制子view如何摆放,所以必须实现onLayout
View没有子view,所以不需要onLayout方法,但是必须实现onDraw
自定义控件实际操作:
1、创建类继承View
2、重写两个构造器
3、重写
onMeasure并调用setMeasuredDimension方法设置控件的宽和高
onDraw 绘制自己显示在屏幕上的样子
4、定义操作控件的方法
a、设置开关块的图片
b、设置开关背景的图片
c、设置更改开关状态的方法
5、定义onTouchEvent事件
6、定义接口对外开关状态
效果
定义View
1、创建类继承View
2、重写两个构造器
3、重写
onMeasure并调用setMeasuredDimension方法设置控件的宽和高
onDraw 绘制自己显示在屏幕上的样子
4、定义操作控件的方法
a、设置开关块的图片
b、设置开关背景的图片
c、设置更改开关状态的方法
public class MySwitch extends View {
private SwitchState sState; // 开关状态
private Bitmap slideBitmap;
private Bitmap switchBitmap;
/**
* 如果自