カスタムコントロールの設定テキストのサイズ


一般的に、自分のコントロールにテキストを配置するときは、Paintで実現します.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をメトリックの単位として採用することを奨励する.