【问题标题】:android - convert dp to floatandroid - 将 dp 转换为浮点数
【发布时间】:2012-11-16 01:14:58
【问题描述】:

我的字体大小是 12dp。

我使用TextPaint 设置字体,因为我使用的是跨度。问题是TextPaint 接受的参数是浮点数。我想知道如何将 12 dp 转换为浮点数?

【问题讨论】:

    标签: android font-size


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      试试这个:

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

      【讨论】:

        【解决方案3】:

        您可以尝试以下操作:

        //将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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-06
          • 2011-02-28
          • 2020-08-25
          相关资源
          最近更新 更多