如何更改数字小数部分的大小?

时间:2017-12-28 08:49:35

标签: android android-layout

我正在尝试使用特殊格式在textview中打印十进制数:逗号左侧的部分以特定大小显示,右侧部分以不同大小显示。

关于如何使这项工作的任何想法?

3 个答案:

答案 0 :(得分:3)

您可以使用SpannableString

  TextView tv = findViewById(R.id.textview);
        String value = "10.3";
        final SpannableString text = new SpannableString(value);
        text.setSpan(new RelativeSizeSpan(1.5f), value.indexOf(".")+1, value.length(),
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        text.setSpan(new ForegroundColorSpan(Color.RED), value.indexOf(".")+1, value.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv.setText(text);

更多参考这些 http://alexandroid.net/spannablestring-example/ https://developer.android.com/reference/android/text/SpannableString.html https://takeoffandroid.com/android-spannable-text-view-to-change-color-size-style-and-adding-click-event-for-particular-word-8acd8a05ec61

答案 1 :(得分:0)

使用SpannableString ..

示例

String yourText = "20.00";
SpannableString ss = new SpannableString(yourText);
ss.setSpan(new RelativeSizeSpan(1.2f), youString.indexOf(".") + 1, youString.length(), 0);
yourTextview.setText(ss);

答案 2 :(得分:0)

以下是执行此操作的示例

double number = 422.343;

String completeNumber = String.valueOf(number);

int decimalPointIndex = completeNumber.indexOf('.');

SpannableString ss=  new SpannableString(completeNumber);
ss.setSpan(new RelativeSizeSpan(2f), 0,decimalPointIndex, 0);

textView.setText(ss);
  1. 将十进制数转换为字符串

  2. 获取小数点的索引值

  3. 然后使用它并将小数点前的第一部分显示为更大的