我开发了一个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)
ojo*_*ifu 22
下载并解压缩Roboto
字体zip文件
assets
如果您还没有项目文件夹,请在项目中创建一个文件夹.我假设你使用的是Android Studio,这是怎么做的.
在assets文件夹中创建一个新目录,并为其命名font
.
打开解压缩的文件并复制您选择的字体样式.您的字体文件夹应如下所示:
您现在可以在应用中的任何位置使用此字体,如下所示:
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)
txtView = (TextView) findViewById(R.id.txtView);
Typeface myTypeface = Typeface.createFromAsset(
this.getAssets(),
"font/Robot.otf");
txtView.setTypeface(myTypeface);
Run Code Online (Sandbox Code Playgroud)
该库包含了在项目中添加字体资源的复杂性,并回收了最近创建的字体,以最大限度地提高应用程序的性能.
将此添加到您的 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.
归档时间: |
|
查看次数: |
77991 次 |
最近记录: |