今天遇到一个问题,由于TextView文本框较小,文本框内字体比较大,导致设置字体区中没有达到想要的效果,距下边比较多,记录习下解决的方法
重写TextView的Ondraw方法
public class CustomTextView extends android.support.v7.widget.AppCompatTextView{
private boolean adjustTopForAscent = true;
private Paint.FontMetricsInt fontMetricsInt;
public CustomTextView(Context context) {
super(context);
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
//设置是否remove间距,true为remove
if (adjustTopForAscent) {
if (fontMetricsInt == null) {
fontMetricsInt = new Paint.FontMetricsInt();
getPaint().getFontMetricsInt(fontMetricsInt);
}
canvas.translate(0, fontMetricsInt.top - fontMetricsInt.ascent);
}
super.onDraw(canvas);
}
}
设置padding内边距,自己控制文本距边框距离,达到居中效果
<com.sam_care.view.CustomTextView
android:gravity="center"
android:textStyle="bold"
android:padding="3dip"
android:textColor="#140202"
android:focusable="false"
android:id="@+id/textview"
android:layout_width="mactch_parent"
android:layout_height="mactch_parent"
/>
网友评论