设置包含文本的自定义视图的样式或字体,如默认TextView?

时间:2011-04-04 08:59:43

标签: android custom-view

我正在实现一个包含文本的自定义视图,文本将在onDraw中绘制。

我的问题是,我希望我的文本看起来像TextView对象中的文本,但我并不熟悉设置样式和字体。

最后用我新的Paint对象绘制的文本看起来与TextView不同:线看起来更薄,似乎被一些昆虫咬伤了...... - -b。我希望我的文本就像那些TextView对象一样。

Plz帮助!

====================
换句话说问题是:

在扩展View的自定义视图中,我使用新的Paint对象mPaint在onDraw方法中调用mPaint.drawText。但是绘制的文本看起来与默认的TextView不同,线条更薄而且不光滑(就像被一些昆虫咬伤一样)。我只是希望它与TextView看起来相同。

2 个答案:

答案 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具有的所有默认功能,此外,您还可以根据自己的要求添加其他自定义功能。