2012-11-28 144 views
3

我的字體大小爲12dp。android - convert dp to float

我使用TextPaint設置字體,因爲我使用的是跨度。問題是TextPaint接受的參數處於浮動狀態。我想知道如何轉換12 DP浮動?

回答

1

您可以嘗試以下操作:

//將SP像素

final float scale = getResources().getDisplayMetrics().scaledDensity; 
int mTextSizeP = (int) getResources().getDimensionPixelSize(R.dimen.text_size)/scale); 

我已經已經在res/values/dimens.xml定義text_size:

<resources> 
    <dimen name="text_size">12sp</dimen> 
</resources> 
5

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

float twelveDp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, 
       mContext.getResources().getDisplayMetrics()); 
4

試試這個:

public static float dipToPixels(Context context, float dipValue){ 
    DisplayMetrics metrics = context.getResources().getDisplayMetrics(); 
    return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics); 
}