我正在实现一个包含文本的自定义视图,文本将在onDraw中绘制。
我的问题是,我希望我的文本看起来像TextView对象中的文本,但我并不熟悉设置样式和字体。
最后用我新的Paint对象绘制的文本看起来与TextView不同:线看起来更薄,似乎被一些昆虫咬伤了...... - -b。我希望我的文本就像那些TextView对象一样。
Plz帮助!
====================
换句话说问题是:
在扩展View的自定义视图中,我使用新的Paint对象mPaint在onDraw方法中调用mPaint.drawText。但是绘制的文本看起来与默认的TextView不同,线条更薄而且不光滑(就像被一些昆虫咬伤一样)。我只是希望它与TextView看起来相同。
答案 0 :(得分:1)
public class CustomText extends TextView {
public CustomText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
Typeface typeface = Typeface.createFromAsset(context.getAssets(),
"fonts/your_font.ttf");
setTypeface(typeface);
}
public CustomText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
Typeface typeface = Typeface.createFromAsset(context.getAssets(),
"fonts/fonts/your_font.ttf");
setTypeface(typeface);
}
public CustomText(Context context) {
super(context);
// TODO Auto-generated constructor stub
Typeface typeface = Typeface.createFromAsset(context.getAssets(),
"fonts/fonts/your_font.ttf");
setTypeface(typeface);
}
}
现在使用您的class / xml中的CustomText
。
希望这会对你有所帮助。
答案 1 :(得分:0)
您可以通过将TextView扩展为父视图来创建自定义视图。通过这样做,您将获得textView具有的所有默认功能,此外,您还可以根据自己的要求添加其他自定义功能。