如何更改字符串 Android 中单词的文本大小?

How to change textsize of a word in a string Android?

我有一个字符串,它应该显示总值中我的值,比如 2/5 ,但我想做的是将它显示为 2 或“/”之前的数字相对较大然后是 "/" 之后的数字。这是我目前试过的,没有效果。

    SpannableString ss1=  new SpannableString(String.valueOf(connectedDevices + "/" + totalDevices));
    ss1.setSpan(new RelativeSizeSpan(2f), 0,1, 0); // set size
    mData.get(0).setCurrentCount(String.valueOf(ss1) );
    notifyDataSetChanged();

我希望 connectedDevices 的大小是 totalDevices 大小的 N(例如 N=3)倍。我如何格式化这个字符串?

与 link 这个问题被标记为重复的不同之处在于,我将此文本存储在字符串或任何变量中,然后稍后通过 recyclerview 的适配器使用它。

普通 String 不包含任何跨度格式信息,因此 String.valueOf(ss1) 调用基本上是撤消您使用 SpannableString 和 [=13= 完成的格式设置].

要保留该格式,请将相关字段的类型以及任何相应方法的参数类型更改为 CharSequence,这是几乎所有文本的基础 interface数据类型实现。然后,您可以将 SpannableString 直接传递给 setCurrentCount(),而不是先将其转换为 String.

如果在某些时候你确实需要一个平面String,你可以转换它;例如,toString()String.valueOf().