第一步自定义view,画了一个圆。给他做点击事件。
public class TopBar extends View{
private Paint mPaint;
private OnTopBarListener mOnTopBarListener;
public TopBar(Context context){
this(context,null);
}
public TopBar(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
// 初始化,新建一个画笔,并设定颜色
private void init() {
mPaint = new Paint();
mPaint.setColor(Color.GREEN);
}
// 绘制一个圆
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(getWidth()/2,getHeight()/2,getWidth()/2,mPaint);
}
// 3.真正起作用,处理事情的地方。可以用其他的监听器框架
@Override
public void setOnClickListener(OnClickListener l) {
super.setOnClickListener(l);
// 这个地方的方法,是留着将来什么地方调用,写社么东西,他就执行什么
mOnTopBarListener.onClick();
}
// 1.定义接口,方法
public interface OnTopBarListener {
void onClick();
}
// 2.设置使用方法
public void setOnTopBarListener(OnTopBarListener onTopBarListener){
mOnTopBarListener = onTopBarListener;
}
}
第二步,就是调用。
TopBar topBar=new TopBar(MainActivity.this);
// 调用自制的监听器,很像系统监听器吧。
topBar.setOnTopBarListener(new TopBar.OnTopBarListener() {
@Override
public void onClick() {
Toast.makeText(MainActivity.this,"点击",Toast.LENGTH_SHORT).show();
}
});
至此,我们完成了自己绘制view,并且自定义一个监听器事件,虽然很简单。但是可以扩展。欢迎留言。