如何在android Project中使用Roboto字体

Jee*_*eva 50 fonts android

我开发了一个android项目.在这个项目中,文本字体默认为android:sans.

现在我想将整个项目的默认文本字体替换为roboto字体.

我怎样才能做到这一点?

Sid*_*ele 64

您可以从此处下载Roboto字体:https: //www.google.com/design/spec/resources/roboto-noto-fonts.html.

您可以通过使用常规方式来执行此操作TypeFace,如下所示:

Typeface typeface = Typeface.createFromAsset(getAssets(), fontName);
textView.setTypeface(typeface);
Run Code Online (Sandbox Code Playgroud)

注意:上述内容必须在每个方面完成Activity.

或者,例如,如果要将Roboto字体应用于TextView's应用程序中的所有字体,则需要创建自己的扩展窗口小部件TextView.

有一种简单的方法可以做到这一点.按照这个答案中的步骤进行操作:https://stackoverflow.com/a/9199258/450534(完全支持leocadiotine的解决方案.我之前使用过它,它就像魅力一样)

编辑:your_namespace作为标记,你可以给它一个你选择的名称.例如,在使用XML集成Admob时xmlns:ads.您可以使用,例如:xmlns:font或描述性的东西.

至于custom.ttf代表什么,它基本上是你需要在你的Assets文件夹中复制的扩展名的字体文件.例如,如果你正在使用的Roboto-REGULAR.TTF,然后更换custom.ttf的Roboto-REGULAR.TTF.使用此示例,整个代码应该看起来像这样:

<your.package.widget.TypefacedTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:font="http://schemas.android.com/apk/res/your.package"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Custom fonts in XML are easy"
    android:textColor="#FFF"
    android:textSize="14dip"
    font:typeface="ROBOTO-REGULAR.TTF" />
Run Code Online (Sandbox Code Playgroud)

  • 从X 11开始,可以在SDK中的"platforms/android-X/data/fonts /"中找到字体(如果我在介绍的时候记得正确的话). (5认同)
  • 如果您将midSdk设置为16,则可以本机设置roboto字体,无需下载任何字体.下面是示例:从android 4.1/4.2开始,可以使用以下Roboto字体系列:android:fontFamily ="sans-serif"// roboto regular android:fontFamily ="sans-serif-light"// roboto light android:fontFamily ="sans-serif-condensed"// roboto浓缩android:fontFamily ="sans-serif-thin"// roboto thin(android 4.2)android:fontFamily ="sans-serif-medium" (4认同)
  • @Ricardo:当你使用除默认Android字体之外的字体时,属性`android:textStyle ="...."`被忽略.要使其变为粗体,您需要使用粗体版本.ttf/.otf字体文件.但是,_Trykker_字体只有常规版本而没有其他变体. (2认同)

ojo*_*ifu 22

  1. 下载并解压缩Roboto字体zip文件

  2. assets如果您还没有项目文件夹,请在项目中创建一个文件夹.我假设你使用的是Android Studio,这是怎么做的. 在此输入图像描述

  3. 在assets文件夹中创建一个新目录,并为其命名font.

  4. 打开解压缩的文件并复制您选择的字体样式.您的字体文件夹应如下所示:

在此输入图像描述

您现在可以在应用中的任何位置使用此字体,如下所示:

   Typeface roboto = Typeface.createFromAsset(context.getAssets(), 
  "font/Roboto-Bold.ttf"); //use this.getAssets if you are calling from an Activity
   txtView.setTypeface(roboto);
Run Code Online (Sandbox Code Playgroud)


Ket*_*hir 6

txtView = (TextView) findViewById(R.id.txtView);

Typeface myTypeface = Typeface.createFromAsset(
                          this.getAssets(),
                          "font/Robot.otf");

txtView.setTypeface(myTypeface);
Run Code Online (Sandbox Code Playgroud)


Enz*_*kie 6

您可以使用Typerlib轻松完成此操作.

该库包含了在项目中添加字体资源的复杂性,并回收了最近创建的字体,以最大限度地提高应用程序的性能.

将此添加到您的 build.gradle

dependencies {
    compile 'com.elmargomez.typer:typerlib:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用字体

TextView txtView1 = (TextView) findViewById(R.id.yourTxtView1);
TextView txtView2 = (TextView) findViewById(R.id.yourTxtView2);
TextView txtView3 = (TextView) findViewById(R.id.yourTxtView3);
TextView txtView4 = (TextView) findViewById(R.id.yourTxtView4);

txtView1.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_REGULAR));
txtView2.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_CONDENSED_ITALIC));
txtView3.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_THIN));
txtView4.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_BOLD));
Run Code Online (Sandbox Code Playgroud)

它包括Roboto中的所有当前字体,如:

    Font.ROBOTO_MEDIUM
    Font.ROBOTO_REGULAR
    etc.
Run Code Online (Sandbox Code Playgroud)

要查看所有可用字体,请按类Ctrl+ 在类字体后按Android键完成space.