当前位置: 首页 > 知识库问答 >
问题:

如何改变文本视图中文本在两个星号ie内的字体**这里**

蒋泰
2023-03-14

我有一个edittext,我从用户I那里获得文本,我希望如果用户的输入包含两个星号,两边和文本将在(****)之间。所以我想改变之间的文本的字体,我该怎么做呢?

例如,在StackOverflow中,如果将两个星号或星号放入,则会得到如下粗体文本--粗体文本位于两个星号之间。在这篇文章中你看不到星星或星号,但它是。

你可以在下面看到我的例子:

String userInput = "This is the Normal text 
**And this the text I want to in different font**
and again normal text and **Now Again the text the user want to in
different font** "

共有1个答案

周翰
2023-03-14

请尝试使用下面的方式

    String text = "this is the text *Android* for developer test";
                SpannableStringBuilder strspan = new SpannableStringBuilder(text);
                int start = text.toString().indexOf("**",0)+2;
                int end = text.toString().indexOf("**",start); //or  int end = text.toString().lastIndexOf("**");
                Typeface font = ResourceUtils.getFont(R.font.avenirnextltprodemi);
                strspan.setSpan(new CustomTypefaceSpan("", font), start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

yourtextview.setText(strspan);


public class CustomTypefaceSpan extends TypefaceSpan {

private final Typeface newType;

public CustomTypefaceSpan(String family, Typeface type) {
    super(family);
    newType = type;
}

@Override
public void updateDrawState(TextPaint ds) {
    applyCustomTypeFace(ds, newType);
}

@Override
public void updateMeasureState(TextPaint paint) {
    applyCustomTypeFace(paint, newType);
}

private static void applyCustomTypeFace(Paint paint, Typeface tf) {
    int oldStyle;
    Typeface old = paint.getTypeface();
    if (old == null) {
        oldStyle = 0;
    } else {
        oldStyle = old.getStyle();
    }

    int fake = oldStyle & ~tf.getStyle();
    if ((fake & Typeface.BOLD) != 0) {
        paint.setFakeBoldText(true);
    }

    if ((fake & Typeface.ITALIC) != 0) {
        paint.setTextSkewX(-0.25f);
    }

    paint.setTypeface(tf);
}

}

希望对你有帮助

 类似资料:
  • 我找不到如何从< code>Activity更改fragment的< code>textview。我有4个文件: frag_class.xml有textView,我想更改MainActivity.java的文本。FragmentClass扩展了片段,此片段显示在MainActivity中,FragmentClass具有: 在MainActivity中,我尝试了这个: 但可悲的是,这段代码给了我Nu

  • 问题内容: 有没有办法改变matplotlib图中图例的字体颜色? 特别是在情节的背景较暗的情况下,图例中的默认黑色文本很难或无法阅读。 问题答案: 调用将在图例对象中获得Text对象的列表:

  • 我在stackoverflow上查看了很多答案和问题,但没有发现任何对我的问题有帮助的东西。 我有两个大小相同、属性相同的TextView,它们紧挨着彼此,xml布局是这样的(只有textsize不同) 代码是这样的 包com.example.fonttest;导入android.os.包;导入android.app.活动;导入android.graphics.字体;导入android.view.

  • 我的css代码: 不确定我是否使用了正确的图标等fa-facebook-square,以及它是否被锁定为透明。

  • 我想在警报对话框中添加两个编辑文本字段。虽然这个解决方案听起来很简单,但到目前为止,我还没有找到一个可行的解决方案。我无法同时设置两个(编辑文本)视图。 如果你想看更多的代码,请发表评论。 我希望第一个编辑文本出现在lot之后,第二个出现在quantity之后,而当我尝试在两个视图中推入时,它们中只有一个似乎在工作。 UPDATE:事实证明,实际上没有一种方法可以在不为警报对话框创建布局的情况下单

  • 问题内容: 我注意到您可以更改文本框中文本的颜色,该文本框在Firefox中应用了简单的类却被禁用,但是无法在IE 6/7中做到这一点。有没有人有一个优雅的解决方案来实现这一目标。 问题答案: 我注意到您可以在Firefox中禁用的文本框中更改文本的颜色 我想这个问题想说的是: IE中显示灰色文本,而Fox中显示红色。FWIW,Opera也给出灰色,而WebKit浏览器给出红色。 这是一个纯粹的C