我创建了一个自定义textview来设置自定义字体并为整个应用程序设置html文本 . 因为我的应用程序在很多地方都有这两个功能 . 在这种情况下,我可以将自定义字体设置为整个Android应用程序,它工作得很好 . 但未能将html文本应用于自定义textview .
限制我有:
-
我不想获取textview并使用
setText(Html.fromHtml("Some text"))
. 它在我在代码中使用它时工作,但我想使用strings.xml
中的文本作为<string name="my_app"><![CDATA[My Whole <b>app</b>lication]]></string>
-
我无法覆盖自定义类函数中的settext,因为它是最终方法 .
-
我的html文本接近100.我不想在代码中对这些字符串进行硬编码 . 请帮忙 .
我的自定义类:
public class CustomTextView extends TextView {
public CustomTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
public void setTypeface(Typeface tf) {
// TODO Auto-generated method stub
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/gothic.ttf"));
}
}
我的布局文件:
<com.views.CustomTextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/my_app" />
我得到输出:我的应用程序
我希望输出为:My app lication
应用程序以粗体文本
有没有办法实现这个目标?
1 回答
你有没有考虑过使用SpannbleString? How can I use TypefaceSpan or StyleSpan with a custom Typeface?
Here是您可以在SpannableString上应用的不同 Span .