Вы также можете использовать SpannableStringBuilder
для достижения требуемого результата
SAMPLE CODE
public class MainActivity extends AppCompatActivity {
TextView tvTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvTextView = findViewById(R.id.tvTextView);
setSpan("76", "20");
}
public void setSpan(String priceOne, String priceTwo) {
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder("Use ");
spannableStringBuilder.append(priceOne);
SpannableString text = new SpannableString("$" + priceTwo);
text.setSpan(new RelativeSizeSpan(1.5f), 0, text.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableStringBuilder.append(" Points =");
spannableStringBuilder.append(text);
spannableStringBuilder.append(" in Payment");
tvTextView.setText(spannableStringBuilder);
}
}
ВЫХОД
ОБНОВЛЕНИЕ
согласно вашему комментарию ниже
Да,Я мог бы использовать это, но мое приложение также поддерживает язык хинди.И для этого сценария локализации, я думаю, использование SpannableStringBuilder было бы труднее управлять
, чем добавить strings
в res/values/string.xml
, например,
<resources>
<string name="app_name"> Demo App</string>
<string name="search">Search</string>
<string name="str_use">Use</string>
<string name="str_points">Points =</string>
<string name="str_payment">in Payment</string>
</resources>
, чем использоватькак это
public class MainActivity extends AppCompatActivity {
TextView tvTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvTextView = findViewById(R.id.tvTextView);
setSpan("76", "20");
}
public void setSpan(String priceOne, String priceTwo) {
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(getString(R.string.str_use));
spannableStringBuilder.append(priceOne);
SpannableString text = new SpannableString("$" + priceTwo);
text.setSpan(new RelativeSizeSpan(1.5f), 0, text.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableStringBuilder.append(getString(R.string.str_points));
spannableStringBuilder.append(text);
spannableStringBuilder.append(getString(R.string.str_payment));
tvTextView.setText(spannableStringBuilder);
}
}