Java 如何在Android中动态更改文本大小

Java 如何在Android中动态更改文本大小,java,android,spannablestring,Java,Android,Spannablestring,我想实现一个功能 编辑文本用户在输入文本时,可以根据设置的字体大小进行更改 比如谷歌Office文档 现在我找到了一种方法,可以SpannableString,但阅读一些示例似乎无法满足我的需要 int index = input.getSelectionEnd(); SpannableString spann = new SpannableString(show_input); AbsoluteSizeSpan word_size = new AbsoluteSizeSpan(18,tru

我想实现一个功能

编辑文本用户在输入文本时,可以根据设置的字体大小进行更改

比如谷歌Office文档

现在我找到了一种方法,可以
SpannableString
,但阅读一些示例似乎无法满足我的需要

int index = input.getSelectionEnd();
SpannableString  spann = new SpannableString(show_input);
AbsoluteSizeSpan word_size = new AbsoluteSizeSpan(18,true);
spann.setSpan(word_size, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
input.getText().insert(index, spann);

那么有什么办法可以提供吗?

看起来您想更改所选文本的大小:

int start = editText.getSelectionStart();
int end = editText.getSelectionEnd();
Spannable text=(Spannable)editText.getText();
text.setSpan(new AbsoluteSizeSpan(NEW_TEXT_SIZE, true), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.setText(text);
用于更改实际大小或比例大小。

I单击以添加TextWatcher()

但是这个程序会崩溃

然后,我试着去做

        Toast.makeText(MainActivity.this, spann, Toast.LENGTH_SHORT).show();
        //input.getText().insert(index, spann);
但这样做可以显示


这就是为什么?

您的问题不可理解,请提供您想要的和您拥有的。还添加了一些代码,这很复杂。但是斯潘·贝尔斯汀会对你有用的。你只需要做一些脑力激荡。spann.setSpan(单词大小,起始字符串位置,结束字符串位置,SPAN.SPAN\u独占\u独占);哪条线坏了?添加crashlog。
        Toast.makeText(MainActivity.this, spann, Toast.LENGTH_SHORT).show();
        //input.getText().insert(index, spann);