android开发分享如何互相转换DP,PX,SP,特别是DP和SP?

我已经知道DPSPPX的区别了。 而在search这个话题后,我完全没有发现任何令人满意的东西 也许这个post是重复的,但是我仍然想知道从DPPX ,从DPSP ,从SPPX ,从PXSP ,从SPDP ,从DPSP的转换公式是什么? 我已经知道一些代码来做到这一点,但它们并不完美。

    DP到PX:

    public static int convertDpToPixels(float dp, Context context) { int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); return px; } 

    SP到PX:

     public static int convertSpToPixels(float sp, Context context) { int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics()); return px; } 

    DP到SP ?为什么你需要它?)

     public static int convertDpToSp(float dp, Context context) { int sp = (int) (convertDpToPixels(dp, context) / (float) convertSpToPixels(dp, context)); return sp; } 

    请纠正我,如果我在最后一个错了,刚刚补上。

    接受的答案是缺less一些有用的转换。

    SP到PX

     float sp = 20; float px = sp * getResources().getDisplayMetrics().scaledDensity; 

    要么

     float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, getResources().getDisplayMetrics()); 

    PX到SP

     float px = 70; float sp = px / getResources().getDisplayMetrics().scaledDensity; 

    DP到PX

     float dp = 20; float px = dp * getResources().getDisplayMetrics().density; 

    要么

     float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics()); 

    PX到DP

     float px = 70; float dp = px / getResources().getDisplayMetrics().density; 

    笔记

    要将维度转换为整数或像素,您需要使用“ getDimensionPixelSize(R.dimen.your_dp_value) ”函数,如…

    在dimens.xml中创build一个值

     <dimen name="padding_10">10dp</dimen> 

    现在,对于像素或整数值,您可以使用如下所示:

     int sizeInPixel = context.getResources().getDimensionPixelSize(R.dimen.padding_10); 

      以上就是android开发分享如何互相转换DP,PX,SP,特别是DP和SP?相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/518002.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐