10

私のフォントサイズは12dpです。

TextPaintスパンを使用しているため、 を使用してフォントを設定しています。TextPaint問題は、受け入れるパラメーターがfloat であることです。12 dp を float に変換するにはどうすればよいですか?

4

3 に答える 3

20

From android.content.res.Resources.getDimension(int id):

float twelveDp = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 12, 
                mContext.getResources().getDisplayMetrics() );
于 2016-11-18T01:58:06.520 に答える
9

これを試して:

public static float dipToPixels(Context context, float dipValue){
    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,  dipValue, metrics);
}
于 2017-01-17T05:22:05.490 に答える
3

以下を試すことができます:

// 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>
于 2016-10-25T11:50:58.200 に答える