カスタムコントロールの設定テキストのサイズ
一般的に、自分のコントロールにテキストを配置するときは、Paintで実現します.
しかし、他の解像度の携帯電話でテキストの効果を見ると、問題があります.
低解像度のマシンでデバッグすると、高解像度のマシンに置くと、フォントが小さすぎると感じます.逆に、大きすぎます.
テキストフォントを設定する場合は、上記のように設定することはできませんが、TextViewと同様の方法を採用する必要があります.
これはまた,TextViewフォントサイズを設定する際にpxではなくspをメトリックの単位として採用することを奨励する.
Paint paint =
new
Paint();
paint.setAntiAlias(
true
);
paint.setTextSize(16);
しかし、他の解像度の携帯電話でテキストの効果を見ると、問題があります.
低解像度のマシンでデバッグすると、高解像度のマシンに置くと、フォントが小さすぎると感じます.逆に、大きすぎます.
テキストフォントを設定する場合は、上記のように設定することはできませんが、TextViewと同様の方法を採用する必要があります.
public
void
setTextSize(
int
textSize){
Context c = getContext();
Resources r;
if
(c ==
null
)
r = Resources.getSystem();
else
r = c.getResources();
int
size = (
int
)TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, textSize, r.getDisplayMetrics());
mTextPaint.setTextSize( size);
}
これはまた,TextViewフォントサイズを設定する際にpxではなくspをメトリックの単位として採用することを奨励する.