android - convert dp to float
20,955
Solution 1
From android.content.res.Resources.getDimension(int id):
float twelveDp = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 12,
mContext.getResources().getDisplayMetrics() );
Solution 2
Try this:
public static float dipToPixels(Context context, float dipValue){
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics);
}
Solution 3
You can try following:
// Convert the sp to pixels
final float scale = getResources().getDisplayMetrics().scaledDensity;
int mTextSizeP = (int) getResources().getDimensionPixelSize(R.dimen.text_size) / scale );
I have already have text_size defined in res/values/dimens.xml
:
<resources>
<dimen name="text_size">12sp</dimen>
</resources>
Comments
-
lorrainebatol almost 2 years
My font size is 12dp.
I'm setting the font using
TextPaint
, since I'm using a span. The problem is the parameter thatTextPaint
accepts is in float. I'm wondering how can I convert 12 dp to float? -
Cipo about 2 yearsapplyDimension (int unit, FLOAT value...) not DP. This solution convert float to float, not DP to float.