• 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

  • 相关阅读:
    csu 1604 SunnyPig (bfs)
    openjudge 大师兄,师傅被妖怪抓走啦
    poj 3264 线段树 求区间最大最小值
    bzoj 1012 维护一个单调数列
    poj 1840 暴力+标记
    最短路径(Dijkstra实现)
    最小生成树(Kruskal实现)
    最小生成树(Prim实现)
    拓扑排序(Kahn实现)
    拓扑排序(DFS实现)
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/6050061.html
Copyright © 2020-2023  润新知