【问题标题】:Android - How to set familiy font "noto sans" in xml?Android - 如何在 xml 中设置家庭字体“noto sans”?
【发布时间】:2015-04-02 07:39:01
【问题描述】:

我正在为以上 Lollipop (Android 5.0) 用户开发一个 android 小部件应用程序。

出于某些原因,我必须在我的应用中使用一种名为“noto sans”(https://www.google.com/get/noto/#/) 的字体。

听说在 Lollipop 里面有,但是我不知道怎么在 xml 中使用。

有人知道吗?

【问题讨论】:

    标签: android xml fonts


    【解决方案1】:

    不,您不能在布局文件 (XML) 中使用自定义字体。您必须以编程方式使用自定义字体,如下所示

    String fontPath = "fonts/calibrib.ttf";
    
              // Loading Font Face
              Typeface tf = Typeface.createFromAsset(mContext.getAssets(), fontPath);
    
    TextView txtView = new TextView(this);
    txtView.setTypeface(tf);
    

    将字体放在 assets 文件夹中。这是上面代码的工作原理。

    【讨论】:

      【解决方案2】:

      您可以通过像这样覆盖 TextView 来创建自己的 TextView,您必须将字体放在 assets 文件夹中:

      public class MyTextView extends TextView {
      
          public MyTextView(Context context, AttributeSet attrs, int defStyle) {
              super(context, attrs, defStyle);
              setType(context);
          }
      
          public MyTextView(Context context, AttributeSet attrs) {
              super(context, attrs);
              setType(context);
          }
      
          public MyTextView(Context context) {
              super(context);
              setType(context);
          }
      
          private void setType(Context context){
              this.setTypeface(Typeface.createFromAsset(context.getAssets(),
                          "foo.ttf"));
      
              this.setShadowLayer(1.5f, 5, 5, getContext().getResources().getColor(R.color.black_shadow));
          }
      }
      

      并像这样使用它:

      <com.your.project.package.MyTextView
              android:id="@+id/oppinfo_mtv_name"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="bottom"  
              android:text="Player 1"
              />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-12
        • 2019-06-26
        • 1970-01-01
        • 1970-01-01
        • 2012-05-26
        相关资源
        最近更新 更多