zoukankan      html  css  js  c++  java
  • TextView textSize 文字大小

    TextView,很常见的控件。关于文字大小的方法有:

    android.widget.TextView#getTextSize  返回值的单位是PX

        /**
         * @return the size (in pixels) of the default text size in this TextView.
         */
        @ViewDebug.ExportedProperty(category = "text")
        public float getTextSize() {
            return mTextPaint.getTextSize();
        }
    

      

    android.widget.TextView#getScaledTextSize 返回值单位是SP

        /**
         * @return the size (in scaled pixels) of thee default text size in this TextView.
         * @hide
         */
        @ViewDebug.ExportedProperty(category = "text")
        public float getScaledTextSize() {
            return mTextPaint.getTextSize() / mTextPaint.density;
        }
    

      

    android.widget.TextView#setTextSize(float) 参数的单位是SP

        /**
         * Set the default text size to the given value, interpreted as "scaled
         * pixel" units.  This size is adjusted based on the current density and
         * user font size preference.
         *
         * @param size The scaled pixel size.
         *
         * @attr ref android.R.styleable#TextView_textSize
         */
        @android.view.RemotableViewMethod
        public void setTextSize(float size) {
            setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
        }
    

      

    android.widget.TextView#setTextSize(int, float) 参数的单位是两个,第一个是单位,第二个是数值

        /**
         * Set the default text size to a given unit and value.  See {@link
         * TypedValue} for the possible dimension units.
         *
         * @param unit The desired dimension unit.
         * @param size The desired size in the given units.
         *
         * @attr ref android.R.styleable#TextView_textSize
         */
        public void setTextSize(int unit, float size) {
            Context c = getContext();
            Resources r;
    
            if (c == null)
                r = Resources.getSystem();
            else
                r = c.getResources();
    
            setRawTextSize(TypedValue.applyDimension(
                    unit, size, r.getDisplayMetrics()));
        }
    

      

    总结:

    • get方法,注意返回值的单位
    • set方法,注意参数的单位

    补充

    在自定义控件中使用自定义属性时,经常需要使用java代码获取在xml中定义的尺寸,相关有以下三个函数

    • getDimension()
    • getDimensionPixelOffset()
    • getDimensionPixelSize()

    它们三个返回值的单位都是:PX

  • 相关阅读:
    linux死锁检测的一种思路【转】
    2016 最佳 Linux 发行版排行榜【转】
    kernel 3.10内核源码分析--TLB相关--TLB概念、flush、TLB lazy模式 【转】
    spin_lock & mutex_lock的区别? 【转】
    Linux输入子系统:多点触控协议 -- multi-touch-protocol.txt【转】
    Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()【转】
    ARM Linux 3.x的设备树(Device Tree)【转】
    设备树概述【转】
    Tslib的移植【转】
    带你制作百词斩单词表读写插件
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/6050061.html
Copyright © 2011-2022 走看看