乐趣区

关于java:Android-富文本加粗与取消加粗的问题

同样是富文本处理的问题,设置一个 Typeface.BOLD 类型的 StyleSpan 能够使该块中的文本变为粗体,然而却不能以同样的办法笼罩一个 Typeface.NORMAL 类型来勾销这段块的粗体款式,最终还是只能应用革除块的形式来达到此目标:

public class MainActivity extends AppCompatActivity {
    EditText editText1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText1 = findViewById(R.id.editText1);
        SpannableString spannableString = new SpannableString("Hello World!");
        spannableString.setSpan(new StyleSpan(Typeface.BOLD), 0, 3, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);

        // 这句有效
        //spannableString.setSpan(new StyleSpan(Typeface.NORMAL), 0, 3, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
        // 这句无效
        spannableString.removeSpan(spannableString.getSpans(0, 3, StyleSpan.class)[0]);

        editText1.setText(spannableString);
    }
}

如果笼罩一个斜体款式到粗体款式上是无效的,然而笼罩这种一般款式却有效,所以至今我还是没有发现 Typeface.NORMAL 的用处。

退出移动版