我正在使用Eclipse Indigo,在2个仿真器(2.2和3.0)上进行测试。
下面的代码显示了我正在测试的内容,但是设置文本大小时,在尝试运行模拟器时屏幕上没有显示任何内容。(如果我注释掉文本大小,文本显示为红色)。我认为eclipse不会重建代码,但我添加了代码行来添加蓝色背景,并且工作正常。我在设置文本后尝试设置文本大小仍然没有成功。代码如下。谢谢你的帮助! (免责声明) - 我试图远离xml。因为我已经知道java我不想依赖它。
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
public class TestAndroidvs2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView text = new TextView(this);
text.setTextColor(Color.RED);
text.setTextSize(2);
text.setBackgroundColor(Color.BLUE);
text.setText("Hello Android");
setContentView(text);
}
}
答案 0 :(得分:441)
方法TextView.setTextSize(int unit , int size);
有两个参数。
试试这个:
text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);
答案 1 :(得分:60)
这解决了我的问题。 我在所有设备上都有统一的字体大小。
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font));
答案 2 :(得分:17)
目前,setTextSize(float size)
方法效果良好,因此我们不需要使用其他方法来更改文字大小
android.widget.TextView.java 源代码
/**
* 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);
}
使用
的示例textView.setTextSize(20); // set your text size = 20sp
答案 3 :(得分:15)
文字大小2几乎不可见。至少尝试使用14。顺便说一下,使用xml有很多优点,一旦你需要做一些比“Hello World”更复杂的事情,你的生活会更轻松。
答案 4 :(得分:11)
有关在代码中设置文字大小的详细信息,请参阅this链接。基本上它说:
public void setTextSize(int unit,float size)
从以下版本开始:API Level 1将默认文本大小设置为给定单位和 值。有关可能的维度单位,请参阅TypedValue。相关的XML 属性
android:textSize参数
单位所需的尺寸单位。
size指定单位中所需的大小。
答案 5 :(得分:9)
在我的情况下使用此方法:
public static float pxFromDp(float dp, Context mContext) {
return dp * mContext.getResources().getDisplayMetrics().density;
}
这里以编程方式设置 TextView的TextSize :
textView.setTextSize(pxFromDp(18, YourActivity.this));
继续享受:)
答案 6 :(得分:1)
在Kotlin中,您可以像这样简单地使用
textview.textSize = 20f