您的位置:首页 > 其它

自定义view 中间添加汉字

2016-12-20 16:43 99 查看
相信各位都做过自定义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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: