TextView適応デフォルトのfontpaddingを削除
最近プロジェクトでtextviewを使用しているとandroid:layout_が使用されていることがわかりましたheight=「wrap_content」という属性設定後、textviewにはデフォルトのpadding、すなわちfontpaddingがあります.これによりtextviewと他のviewの間の間隔が自分の設定より大きくなります.では、どうやってremoveしてこの間隔を外しますか?
第一に、まずincludefontpadding=falseを設定してみて、目的を達成できない場合は、第二の方法に従ってもいいです.
第二に、カスタムTextViewを実現するには、TextViewから継承してonDrawメソッドを書き換えるだけでよい.
第2の方法は一般的に目的を達成することができて、もしやはりできないならば、それはmarginTopが負の値に等しいことを使って実現するしかありませんが、この方法はお勧めしません.
第一に、まずincludefontpadding=falseを設定してみて、目的を達成できない場合は、第二の方法に従ってもいいです.
第二に、カスタムTextViewを実現するには、TextViewから継承してonDrawメソッドを書き換えるだけでよい.
FontMetricsInt fontMetricsInt;
@Override
protected void onDraw(Canvas canvas) {
if (adjustTopForAscent){// remove ,true remove
if (fontMetricsInt == null){
fontMetricsInt = new FontMetricsInt();
getPaint().getFontMetricsInt(fontMetricsInt);
}
canvas.translate(0, fontMetricsInt.top - fontMetricsInt.ascent);
}
super.onDraw(canvas);
}
第2の方法は一般的に目的を達成することができて、もしやはりできないならば、それはmarginTopが負の値に等しいことを使って実現するしかありませんが、この方法はお勧めしません.