相信各位都做过自定义view 下面我教各位一种简单的自定义view中间添加汉字
public int width = 150; public int height = 150; private Paint circlePaint; private Paint textPaint; private static final String TAG = "FloatCircleView"; //三个构造函数都必须调用,否则无法正常使用自定义view public FloatCircleView(Context context) { this(context,null); } public FloatCircleView(Context context, AttributeSet attrs) { this(context, attrs,0); } public FloatCircleView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initPaint(); } public void initPaint(){ circlePaint = new Paint(); circlePaint.setAntiAlias(true); circlePaint.setColor(Color.RED); textPaint = new Paint(); textPaint.setAntiAlias(true); textPaint.setTextSize(25); textPaint.setColor(Color.BLACK); textPaint.setFakeBoldText(true); } @Override protected void onDraw(Canvas canvas) { canvas.drawCircle(width / 2,width / 2,width / 2,circlePaint); String text = "登陆\n注册"; float textWidth = textPaint.measureText(text); float x = (width - textWidth) / 2; Paint.FontMetrics metrics = textPaint.getFontMetrics(); //ascent是负的,descent是正的,dy是正的 float dy = -(metrics.ascent + metrics.descent) / 2; float y = height / 2 + dy; canvas.drawText(text,x,y,textPaint); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(width,height); }