【问题标题】:Change TextView Font?更改 TextView 字体?
【发布时间】:2012-09-23 15:47:15
【问题描述】:

如何在 Android TextView 中更改字体类型?

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Welcome!"
    android:textSize="20sp"  />

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以使用android:typeface 属性。例如:

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Welcome!"
        android:typeface="sans"
        android:textSize="20sp"  />
    

    XML 属性仅允许值 normalsansserifmonospace。如果您想使用不同的Typeface(可能是您的应用附带的自定义),您必须在加载 TextView 后调用 setTypeface() 以在代码中执行此操作。

    【讨论】:

    • 现在有哪些不同类型的面孔?
    • @apw2012 - 您通常只能依赖系统中存在的一组字体——通过允许的 XML 值访问的字体。它曾经是“Droid Sans”、“Droid Sans Mono”和“Droid Serif”。从 Ice Cream Sandwich (4.0) 开始,它是“Roboto”系列(描述为 here)。对于其他任何事情,您需要将其与您的应用一起发布并使用TypeFace.createFrom... 方法之一(如@Siddharth 描述的)加载它。
    【解决方案2】:

    要添加到 Ted Hopp 的 答案中,如果您正在查看 TextView 的自定义字体,请在您引用 TextViewActivity 中使用此代码示例:

    Typeface blockFonts = Typeface.createFromAsset(getAssets(),"ROBOTO-MEDIUM_0.TTF");
    TextView txtSampleTxt = (TextView) findViewById(R.id.your_textview_id);
    txtSampleTxt.setTypeface(blockFonts);
    

    不过,在您使用它之前,您需要将您选择的字体复制到 assets 文件夹中。

    您还可以查看我在 SO 上的answer 之一,其中有几个网站可用于下载字体。它们是:

    http://www.google.com/webfonts

    http://www.fontsquirrel.com/

    【讨论】:

    • 澄清一下,如果你想使用以"fonts/"开头的路径作为你正在做的资产名称,你只需要创建一个fonts子文件夹。字体也可以从根 assets 文件夹中加载。
    • 字体块字体 = Typeface.createFromAsset(getAssets(),"fonts/Lobster.TTF"); TextView txtSampleTxt = (TextView) findViewById(R.id.welcome); txtSampleTxt.setTypeface(blockFonts);
    • 好的,所以它在打开时崩溃了。我把提供的代码放到java中的oncreate/setlayout下改成需要的字体
    • @apw2012:我通常会将字体放在文件夹中,然后单击它,按 F2 进入重命名对话框,选择带有扩展名的整个字体名称,然后将其粘贴到我的 java 代码中。请在 Ted 更正后查看我的编辑
    • 我用的是安卓,不是电脑。我一直在尝试使用 AIDE。
    【解决方案3】:

    您可以通过将字体文件 (example.tff) 样式放置在 资产/字体,然后将您自己的字符串输入到 fontpath 变量中

        String fontPath="fonts/Unkempt-Regular.ttf";
        TextView aboutus=(TextView)findViewById(R.id.aboutus);
        Typeface type=Typeface.createFromAsset(getAssets(), fontPath);
        aboutus.setTypeface(type);
    

    【讨论】:

      猜你喜欢
      • 2011-02-22
      • 2011-09-15
      • 2016-03-28
      • 1970-01-01
      • 2017-12-02
      • 2011-10-31
      • 2019-05-13
      • 2023-03-07
      相关资源
      最近更新 更多