TextView - 以编程方式设置文本大小似乎不起作用

时间:2011-08-09 15:43:38

标签: android

我正在使用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);
  }
}

7 个答案:

答案 0 :(得分:441)

方法TextView.setTextSize(int unit , int size);有两个参数。

试试这个:

text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);

参考thisthis

答案 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