要在自定义的TextView中使文本不居中,可以使用以下方法:
public class CustomTextView extends TextView {
public CustomTextView(Context context) {
super(context);
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
// 获取文本的宽度
float textWidth = getPaint().measureText(getText().toString());
// 获取TextView的宽度
int viewWidth = getWidth();
// 计算文本在X轴上的偏移量
float xOffSet = (viewWidth - textWidth) / 2;
// 绘制文本,传入xOffSet作为偏移量
canvas.drawText(getText().toString(), xOffSet, getBaseline(), getPaint());
}
}
通过这种方式,文本将不再居中显示,而是根据计算得到的偏移量进行绘制。