自定义EditText ,实现一个字一个格
  fIf0rCzjdQ4z 2023年11月02日 55 0


 

<span style="font-size:18px;">1.自定义EditText ,实现一个字一个格
</span>

自定义EditText ,实现一个字一个格_Text

<span style="font-size:18px;">
</span>

自定义EditText ,实现一个字一个格_i++_02

<span style="font-size:18px;">package com.bjhrk.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.EditText;

/**
 * Created by user on 2016/7/4.
 */
public class MyEdittext extends EditText {

    private Paint rectPaint;

    public MyEdittext(Context context) {
        super(context);
        init();
    }

    public MyEdittext(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public MyEdittext(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init(){
        rectPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        rectPaint.setStyle(Paint.Style.STROKE);
        rectPaint.setStrokeWidth(5);
        rectPaint.setColor(Color.BLACK);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //super.onDraw(canvas);
        Paint textPaint = getPaint();
        textPaint.setTextAlign(Paint.Align.CENTER);


        /**
         * 绘制框
         */
        int width = getWidth();
        int height = getHeight();
        canvas.drawRect(0,0,width,height,rectPaint);
        int sigleWidth = width/6;
        int x = sigleWidth;
        for (int i = 0;i < 5;i++){
            canvas.drawLine(x,0,x,height,rectPaint);
            x += sigleWidth;
        }

        /**
         * 绘制文字
         */
        String text = getText().toString();
        if(text == null || "".equals(text)){
            return;
        }
        //计算出baseLine位置
        Paint.FontMetricsInt fm = textPaint.getFontMetricsInt();
        int baseLineY = height/2 + (fm.bottom - fm.top)/2 - fm.bottom;

        char[] chars = text.toCharArray();
        int x1 = sigleWidth/2;
        for (int i = 0;i<chars.length;i++){
            String temp = String.valueOf(chars[i]);
            canvas.drawText(temp,x1,baseLineY,textPaint);
            x1 += sigleWidth;
        }

    }
}
</span>

自定义EditText ,实现一个字一个格_i++_03

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
fIf0rCzjdQ4z