TextView - setting the text size programmatically doesn't seem to work

前端 未结 7 1227
灰色年华
灰色年华 2020-12-12 17:49

I am using Eclipse Indigo, testing on 2 emulators(2.2 and 3.0).

the code below shows what I am testing now, however setting the text size reveals nothing on the scre

相关标签:
7条回答
  • 2020-12-12 18:07

    the method TextView.setTextSize(int unit , float size); takes two parameters .

    Try this :

    text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);
    

    refer this and this.

    UPDATE: Now the setTextSize(float size) will set the text size automatically in "scaled pixel" units. no need to mention the COMPLEX_UNIT_SP manually. Refer to the documentation.

    0 讨论(0)
  • 2020-12-12 18:11

    This fixed the issue for me. I got uniform font size across all devices.

     textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font));
    
    0 讨论(0)
  • 2020-12-12 18:12

    Text size 2 will be practically invisible. Try it with 14 at least. BTW, using xml has a lot of advantages and will make your life easier once you need to do anything more complex than 'Hello World'.

    0 讨论(0)
  • 2020-12-12 18:12

    Currently, setTextSize(float size) method will work well so we don't need to use another method for change text size

    android.widget.TextView.java source code

    /**
     * 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.
     *
     * <p>Note: if this TextView has the auto-size feature enabled than this function is no-op.
     *
     * @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);
    }
    

    Example using

    textView.setTextSize(20); // set your text size = 20sp
    
    0 讨论(0)
  • 2020-12-12 18:18

    In My Case Used this Method:

    public static float pxFromDp(float dp, Context mContext) {
        return dp * mContext.getResources().getDisplayMetrics().density;
    }
    

    Here Set TextView's TextSize Programatically :

    textView.setTextSize(pxFromDp(18, YourActivity.this));
    

    Keep Enjoying:)

    0 讨论(0)
  • 2020-12-12 18:29

    In Kotlin, you can use simply use like this,

    textview.textSize = 20f

    0 讨论(0)
提交回复
热议问题