【问题标题】:How to add setTypeface property for View Extends from CustomView?如何从 CustomView 为 View Extends 添加 setTypeface 属性?
【发布时间】:2014-08-26 18:43:54
【问题描述】:

我正在使用一个自定义文本视图,不确定它从 bez 延伸到哪里。我在图书馆使用它,有属性setText()setTextColor()

我的问题是无法更改字体样式。所以我想创建一个从现有自定义视图扩展的自定义视图,因为我想添加setTypeface 属性。

有可能吗?

我正在寻找指针和想法..

更新:

public class FontTextView extends TextDrawable  {   

private Paint paint;
private Context context;    
private String text;
private float size;

public FontTextView(Context _context, String _text, float textSize) {
    super(_text, textSize);
    context = _context;
    this.text = _text;
    this.size = textSize;
    init();
}

public void init() {

    Typeface face=Typeface.createFromAsset(context.getAssets(), "special_fonts/Atlas.ttf"); 

    paint = new Paint();    
    paint.setTextSize(size);     
    paint.setTypeface(face);
}

protected void onDraw (Canvas canvas) {
    super.draw(canvas);     
    canvas.drawText(text, 100, 40, paint);
}
}

我试过这样但没有成功。

【问题讨论】:

标签: android view typeface


【解决方案1】:

使用下面的示例代码进行动态设置

  Typeface myNewFace=Typeface.createFromAsset(getAssets(), "fonts/Jokerman.TTF“ );
  tvCustom.setTypeface(myNewFace);

并将您的字体样式 ttf 文件保存在 assets/fonts 文件夹中。

【讨论】:

  • 我知道如何为 textView 设置字体,我想用 setTypeface() 属性创建一个新的自定义视图。
【解决方案2】:

使用textview.setTypeface(null, Typeface.BOLD_ITALIC);

【讨论】:

  • 在您的代码中,您指定了要绘制的字体,但是您确实机器人在任何地方使用了该绘制对象,可能您需要将该绘制对象用于文本视图或将下面的一个受保护的 void onDraw(Canvas 画布) { super.draw(canvas); canvas.drawText("测试", 100, 40, 油漆); }
  • 我按照你说的更新了,但我还是没有收到。检查上面的更新代码
  • 你可以添加 TextDrawable 类代码并尝试使用适当的尺寸,如屏幕中间。你可以在没有字体的情况下至少在屏幕上看到文本
  • textdrawable 类存在于库中...看不到
  • k 为该油漆对象添加颜色并观察至少颜色即将到来或不尝试使用 3、4 种颜色
猜你喜欢
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 2015-01-26
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多