私のフォントサイズは12dpです。
TextPaint
スパンを使用しているため、 を使用してフォントを設定しています。TextPaint
問題は、受け入れるパラメーターがfloat であることです。12 dp を float に変換するにはどうすればよいですか?
From android.content.res.Resources.getDimension(int id):
float twelveDp = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 12,
mContext.getResources().getDisplayMetrics() );
これを試して:
public static float dipToPixels(Context context, float dipValue){
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics);
}
以下を試すことができます:
// sp をピクセルに変換します
final float scale = getResources().getDisplayMetrics().scaledDensity;
int mTextSizeP = (int) getResources().getDimensionPixelSize(R.dimen.text_size) / scale );
私はすでに text_size で定義されていますres/values/dimens.xml
:
<resources>
<dimen name="text_size">12sp</dimen>
</resources>