如何在我的TextView中显示加粗和多颜色的文本

9 浏览
0 Comments

如何在我的TextView中显示加粗和多颜色的文本

我需要以彩虹色和粗体的方式在TextView中显示文本,我该如何实现?同时我需要使用Java代码动态地显示它们。

TextView text = new TextView(context);
                        text.setText(status);
                    text.setBackgroundResource(R.drawable.grd_btn);
                    text.setGravity(Gravity.CENTER);
                    text.setPadding(2, 0, 2, 0);
                    text.setTypeface(font2, Typeface.BOLD);
                    text.setTextColor(Color.WHITE);

0
0 Comments

问题的原因是想要在TextView中显示加粗和多颜色的文本。解决方法是使用Html.fromHtml()方法将HTML文本转换成Spannable对象,并使用setTypeface()方法将文本设置为加粗。

代码如下:

String text = "This is <font color='red'>red</font>. This is <font color='blue'>blue</font>.";
textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);
textView.setTypeface(null, Typeface.BOLD);

以上代码将字符串text中的红色文本和蓝色文本转换成Spannable对象,并将其设置为TextView的文本内容。同时,使用setTypeface()方法将文本设置为加粗。

通过以上操作,就可以在TextView中显示加粗和多颜色的文本了。

0
0 Comments

问题的出现原因是使用TextView显示文本时,希望文本具有加粗和多颜色的效果。解决方法是通过设置XML文件、资源文件和Java文件来实现。

首先,在XML文件中设置TextView的属性,包括id、宽度、高度和文本内容。

然后,在资源文件中定义各种颜色的名称和对应的颜色值。

接下来,在Java文件中使用Shader类创建一个线性渐变对象,并设置渐变的起始和结束位置、颜色数组和颜色位置数组。然后将该渐变对象设置为TextView的画笔的Shader属性,并设置文本大小。

最后,如果需要设置文本加粗样式,可以参考之前的回答中提供的链接。

需要注意的是,有用户在API 23(Android M)上尝试了这段代码,但只显示了单一颜色,可能需要针对该API版本进行适配。

0
0 Comments

问题的原因是希望在TextView中显示粗体和多彩文本。该解决方法是创建一个名为RainbowTextView的自定义TextView类,并在其中重写onSizeChanged方法来实现。该方法首先获取彩虹颜色数组,然后创建一个线性渐变着色器,将其应用于TextView的绘制画笔中。

解决方法的代码如下:

public class RainbowTextView extends TextView {
  protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    int[] rainbow = getRainbowColors();
    Shader shader = new LinearGradient(0, 0, 0, w, rainbow, 
        null, Shader.TileMode.MIRROR);
    Matrix matrix = new Matrix();
    matrix.setRotate(90);
    shader.setLocalMatrix(matrix);
    getPaint().setShader(shader);
  }
  private int[] getRainbowColors() {
    return new int[] {
      getResources().getColor(R.color.rainbow_red),
      getResources().getColor(R.color.rainbow_yellow),
      getResources().getColor(R.color.rainbow_green),
      getResources().getColor(R.color.rainbow_blue),
      getResources().getColor(R.color.rainbow_purple)
    };
  }
}

以上代码实现了在TextView中显示粗体和多彩文本的效果。通过创建一个渐变着色器,并将其应用于TextView的绘制画笔中,使得文本显示为彩虹颜色。

0