先来张效果图
banner.gif
步骤思路
继承View
1、测量自己的宽高
2、绘制自己
3、处理触摸事件
1、继承View
public class MyToggleButton extends View {
public MyToggleButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
// 在布局文件中使用控件时 调用
public MyToggleButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
// 在代码中new对象时 调用
public MyToggleButton(Context context) {
super(context);
}
}
2、在布局中使用MyToggleButton
android:id="@+id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
3、测量宽高
// 测量自己的宽高,把背景图片的宽高设置为自己的宽高
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// 把背景图片的宽高设置为自己的宽高
setMeasuredDimension(backgroundBitmap.getWidth(), backgroundBitmap.getHeight());
}
// 外界设置开关背景图片资源
public void setBackgroundRes(int backgroundRes){
// 把传进来的图片资源 转换成Bitmap对象
backgroundBitmap = BitmapFactory.decodeResource(getResources(), backgroundRes);
}
4、绘制
// 外界设置滑动块图片资源
public void setSlideButtonRes(int slideButtonRes){