一、文字如何绘制在中心点
1、通过画笔 Paint 和画布 Canvas 绘制文字并显示;
若直接通过 canvas.drawText() 绘制。将对应 x/y 值都设为 0 ,文字并不会显示,这是因为 y 要传入的值是基于文字基线 baseline,如下图:
public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint) {
super.drawText(text, x, y, paint);
}
public class PostitionTextView extends AppCompatTextView {
String mText = "test";
public PostitionTextView(Context context) {
super(context);
}
public PostitionTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public PostitionTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {//canvas---画布
super.onDraw(canvas);
Paint paint = new Paint();//画笔
paint.setTextSize(80);
// 看不到 因为y是基准线baseline
// canvas.drawText(mText, 0, 0, paint);
float baseline = 100;
canvas.drawText(mText, 0, baseline, paint);
}
}
2、画X轴居中辅助线并实现文字左右居中
// X轴居中辅助线
public void drawCenterLineX(Canvas canvas){
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
paint.setStrokeWidth(3);
canvas.drawLine(getWidth()/2, 0, getWidth()/2, getHeight(), paint);
}
@Override
protected void onDr