android自定义控件

Posted yoyo198212

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(); //刷新屏幕
    }
}

 

以上是关于android自定义控件的主要内容,如果未能解决你的问题,请参考以下文章

片段中ListView的android自定义适配器

在 Leanback 应用程序中自定义播放控件

Android 自定义控件

Android中的自定义视图控件

Android:在片段内膨胀自定义视图

android关于自定义seekbar控件的问题(将横向seekbar改成竖向seekbar)