这是我的自定义文字视图:
public class CustomTextView extends TextView {
public CustomTextView (Context context) {
super(context);
}
public CustomTextView (Context context, AttributeSet attrs) {
super(context, attrs);
setCustomFont(context, attrs);
}
public CustomTextView (Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setCustomFont(context, attrs);
}
private void setCustomFont(Context ctx, AttributeSet attrs) {
setCustomFont(ctx);
}
public boolean setCustomFont(Context ctx) {
Typeface tf = null;
try {
tf = Typeface.createFromAsset(ctx.getAssets(), "icons/svg_icons.ttf");
} catch (Exception e) {
return false;
}
setTypeface(tf);
return true;
}
}
我的图标代码是:
<string name="svg_warning" translatable="false"></string>
我将带有文本的svg图标添加到TextView:
mytextview.setText(String.format("Please Select a Country %s",getResources().getString(R.string.svg_warning)));
但是“请选择国家/地区”的字体与默认的Android字体不同。如何使用默认的Android文本字体将svg图标添加到TextView?
答案 0 :(得分:1)
天哪,我从来不知道textviews支持这样的svg!
正如我从您的代码中看到的,您的customTextView将具有您刚刚在setCustomFont方法中设置的Typeface。您可以做的是有2个textviews,一个是svg的customTextView,左边是一个水平的LinearLayout和一个普通的TextView。你不能在textview中的某些文本中使用一种字体,而在文本的其他部分使用另一种字体,在web中你可以为p标签使用2种不同的字体吗?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>