Edit:
Bạn có thể sử dụng SuperscriptSpan()
Spannable WordtoSpan = new SpannableString("13.500,27");
WordtoSpan.setSpan(new TextAppearanceSpan(null, 0, 17, null, null), WordtoSpan.length()-2, WordtoSpan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
WordtoSpan.setSpan(new SuperscriptSpan(), WordtoSpan.length()-2, WordtoSpan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
kích thước phông chữ Tăng để xem hiệu quả
Hãy thử này tôi không tìm thấy bất kỳ cách nào khác, nhưng để thêm văn bản superscript cho chuỗi spannalbe gốc
Áp dụng nhịp gì đã bao giờ bạn muốn cho các SpannableStringBuilder
SpannableStringBuilder builder=new SpannableStringBuilder("13.500,");
builder.append(Html.fromHtml("X<sup>27</sup>"))
Chỉnh sửa 2
Nếu bạn tạo khoảng tùy chỉnh như dưới đây, nó căn chỉnh siêu văn bản lên trên cùng tuyệt đối. Nhưng nếu bạn sử dụng SuperscriptSpan mặc định, nó không thể làm cho văn bản alignt lên trên.
public class SuperscriptSpan2 extends MetricAffectingSpan implements
ParcelableSpan {
public SuperscriptSpan2() {
}
public int getSpanTypeId() {
return TextUtils.CAP_MODE_CHARACTERS;
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
}
@Override
public void updateDrawState(TextPaint tp) {
tp.baselineShift += (int) (tp.ascent()/1.25);
}
@Override
public void updateMeasureState(TextPaint tp) {
tp.baselineShift += (int) (tp.ascent()/1.25);
}
}
Kiểm tra câu trả lời của tôi – Pragnani