如何相互转换DP,PX,SP,尤其是DP和SP?

我知道DPSPPX之间的区别。在搜索了这个主题之后,我发现没有什么令我完全满意。也许这个职位是一个重复的,但我还是想知道什么是从转换的公式DPPX,和DPSP,从SPPX,从PXSP,从SPDP,从DPSP?我知道一些代码可以做到这一点,但是它们并不完美。



jeck猫
浏览 823回答 3
3回答

慕姐4208626

DP至PX:public static int dpToPx(float dp, Context context) {    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());}SP到PX:public static int spToPx(float sp, Context context) {    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());}DP到SP:public static int dpToSp(float dp, Context context) {    return (int) (dpToPx(dp, context) / context.getResources().getDisplayMetrics().scaledDensity);}

哈士奇WWW

要将Dimension转换为Integer或Pixel,您需要使用“ getDimensionPixelSize(R.dimen.your_dp_value) ”函数,例如...在dimens.xml中赋值<dimen name="padding_10">10dp</dimen>现在,对于以像素或整数表示的那个值,您可以像下面这样使用:int sizeInPixel = context.getResources().getDimensionPixelSize(R.dimen.padding_10);
打开App,查看更多内容
随时随地看视频慕课网APP