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
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.
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));
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'.
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
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:)
In Kotlin, you can use simply use like this,
textview.textSize = 20f