【发布时间】:2012-11-16 01:14:58
【问题描述】:
我的字体大小是 12dp。
我使用TextPaint 设置字体,因为我使用的是跨度。问题是TextPaint 接受的参数是浮点数。我想知道如何将 12 dp 转换为浮点数?
【问题讨论】:
我的字体大小是 12dp。
我使用TextPaint 设置字体,因为我使用的是跨度。问题是TextPaint 接受的参数是浮点数。我想知道如何将 12 dp 转换为浮点数?
【问题讨论】:
来自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 );
我已经在res/values/dimens.xml 中定义了 text_size :
<resources>
<dimen name="text_size">12sp</dimen>
</resources>
【讨论】: