Android TextView 属性 textsize 的单位是什么?

首选我们找到 源码中的TextViewAndroid TextView 属性 textsize 的单位是什么?_第1张图片
找到 textsize 属性 一个 int 类型默认值为 15
Android TextView 属性 textsize 的单位是什么?_第2张图片
初使化自定义属性:
Android TextView 属性 textsize 的单位是什么?_第3张图片
我们看一个 getDeimensionPixelSize()方法的解释可以看出 获取 是 15 单位是什么 是px
Android TextView 属性 textsize 的单位是什么?_第4张图片
那我们在代码中给TextView设置 大小的时候 单位是什么呢?
Android TextView 属性 textsize 的单位是什么?_第5张图片

最终设置值 的是 setRawTextSize() 而 setRawTextSize() 的参数 又调用了 Typevalue.appDimension() 我们进入 这个方法:
Android TextView 属性 textsize 的单位是什么?_第6张图片
我们可以看到返回的是 一个把sp 换成了 px 也就是说 我们在代码中用setTextSize() 方法 设置的文字大小的单位是 sp 而最终 还是把 sp 转换成了 px 去设置的。
通过上面的方法 我们是不是也可以写一个sp转px的方法

/**
     * 
     * @param value  
     * @return  以px 为单位的值
     */
    public float sp2px(float value) {

        float dimension = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, value, getResources().getDisplayMetrics());
        return dimension;
    }

你可能感兴趣的:(Android)