【问题标题】:Making first word/character of string in textview bigger使textview中字符串的第一个单词/字符更大
【发布时间】:2016-01-22 22:10:59
【问题描述】:

我一直在网上搜索,但没有找到可以使用的东西。我的文本视图中有文本,其中包含类似的文本;

1 Person
2 Person
3 Person

文本的格式类似于(1\nperson), (2\nperson) ....,因此在数字和人员字符串之间添加空格。

我想要做的是使每个字符串的数量更大。例如;

我在网上搜索过,我发现的链接/类似的东西没有那么有用:

Is it possible to have multiple styles inside a TextView?

TextView with different textSize

textview 的默认字体大小为 15,因此人员字符串的字体大小将始终为 15,我想要做的是使数字更大,例如字体大小为 20。

【问题讨论】:

    标签: android string textview styles


    【解决方案1】:

    我认为这可行:

    Spannable span = new SpannableString(textView.getText());
    span.setSpan(new RelativeSizeSpan(1.5f), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(span);
    

    【讨论】:

    • 有效!请告诉我 1.5f, 0, 1 指的是什么。
    • 查看 Android 文档:RelativeSizeSpanSpannable1.5f 是文本的相对大小——所以“使它成为文本其余部分的 1.5 倍”0, 1 是开始/结束范围——所以只更改第一个字符
    • 快速问题,是否有解决方案来检查数字是否为十进制数字,例如1.6 然后把这个数字的大小改为。
    • 是的,您可以为开始/结束提供变量,而不是像我在此示例中所做的那样对其进行硬编码。例如,您可以将 end 设置为 textView.getText().toString().indexOf('\n')
    【解决方案2】:

    为什么不在一个LinearLayout 中使用两个TextView 而不是一个TextView?它会做你需要的。您可以将第一个字符放在第一个 TextView 中,将字符串的其余部分放在第二个 TextView 中。如果您需要帮助,请告诉我。

    【讨论】:

    • 我明白你的意思,但由于我的数据验证方法和错误处理,我认为它在我的情况下不起作用。
    • 如果没有细节,我真的无法理解你的意思。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多