我如何创建这个“$”?
我甚至不知道它的名字是在谷歌搜索
@Bidhan A
答案 0 :(得分:2)
这样做的一种方法如下:
TextView price= (TextView) findViewById(R.id.superscript);
price.setText(Html.fromHtml("<sup><small>$</small></sup>59.12"));
编辑:好的,如果你想让他们的上衣对齐,那么上面的方法对你不起作用。你将不得不做一些额外的工作。请执行以下操作
首先,创建一个新的Java文件并将其命名为SpanAdjuster.java。然后粘贴以下代码
import android.text.TextPaint;
import android.text.style.MetricAffectingSpan;
public class SpanAdjuster extends MetricAffectingSpan {
double ratio = 0.5;
public SpanAdjuster() {
}
public SpanAdjuster(double ratio) {
this.ratio = ratio;
}
@Override
public void updateDrawState(TextPaint paint) {
paint.baselineShift += (int) (paint.ascent() * ratio);
}
@Override
public void updateMeasureState(TextPaint paint) {
paint.baselineShift += (int) (paint.ascent() * ratio);
}
}
现在,在您的MainActivity中
TextView price= (TextView) findViewById(R.id.price);
SpannableStringBuilder cs = new SpannableStringBuilder("$59.12");
//Make the dollar sign smaller that the rest of the text
cs.setSpan(new RelativeSizeSpan(0.7f), 0, 1, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
// Align it to the top
cs.setSpan(new SpanAdjuster(1.6/5.0), 0, 1, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
price.setText(cs);
根据文字大小调整RelativeSizeSpan()和SpanAdjuster()内的值。
我希望上面的内容适合你。
答案 1 :(得分:0)
您可以像这样使用android:drawableLeft
TextView
<TextView
...
android:drawableLeft="@drawable/dollar_sign"
...
/>
答案 2 :(得分:0)
是的,您可以使用以下示例执行此操作:
String styledText = "<small > <font size='10' color='#1373CC'><b>"
+ "ABC " + "</b></font></small>"
+ "<font size='30' color='#1373CC'><b>" + "Testing" + "</b></font>";
tv_textView.setText(Html.fromHtml(styledText));