android自定义控件

package com.example.app.sw.kg;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class MySwitchBtnView extends View implements OnClickListener{
    
    private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    private boolean flag = false ;
    private Context mContext ;
    
    Bitmap bitmap_open = null ;
    Bitmap bitmap_close = null;

    public MySwitchBtnView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        init();
    }

    private void init() {
        setOnClickListener(this);
        bitmap_open = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.btn_open);
        bitmap_close = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.btn_close);
        
    }

    
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        setMeasuredDimension(bitmap_open.getWidth(), bitmap_close.getHeight());
    }
    
    public MySwitchBtnView(Context context) {
        super(context);
        mContext = context ;
        init();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        if(flag){
            //绘制开
            canvas.drawBitmap(bitmap_open, 0, 0,paint);
            Toast.makeText(mContext, "被打开了", 0).show();
        }else{
            //绘制关
            canvas.drawBitmap(bitmap_close, 0, 0,paint);
            Toast.makeText(mContext, "被关闭了", 0).show();
        }
    }

    @Override
    public void onClick(View v) {
        if(flag){
            flag = false ;
        }else{
            flag = true ;
        }
        invalidate(); //刷新屏幕
    }
}
原文地址:https://www.cnblogs.com/yoyo198212/p/8325085.html