如何在ANDROID STUDIO中导入外部字体/字体?
我想知道如何在Android Studio中使用外部字体,因为没有资产文件夹。我在网上找了一个有用的档案,但他们都假装使用资产文件夹如何在ANDROID STUDIO中导入外部字体/字体?,android,fonts,android-studio,Android,Fonts,Android Studio,我想知道如何在Android Studio中使用外部字体,因为没有资产文件夹。我在网上找了一个有用的档案,但他们都假装使用资产文件夹 我自己在src/main中创建了一个资产文件夹,但Android Studio无法识别getAssets() 如果您有自定义字体,请使用以下代码: TextView tv=(TextView)findViewById(R.id.custom); Typeface face=Typeface.createFromAsset(getAssets(),"fonts/Ve
我自己在
src/main
中创建了一个资产文件夹,但Android Studio无法识别getAssets()
如果您有自定义字体,请使用以下代码:
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/Verdana.ttf");
tv.setTypeface(face);
另外,将字体文件放在assets/fonts文件夹中,然后按照此处的说明进行操作
注意:您必须自己创建资产文件夹继续您的项目:app-->src-->main
创建一个资产文件夹,如下所示:
|assets
|-----------------fonts
|-------------------font.ttf
|java
|res
AndroidManifest.xml
然后使用
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/digital.ttf");
txtV.setTypeface(face);
如果“getAssets()”方法出现错误,则可以使用以下方法。 在“资源”文件夹中放置字体系列
Typeface getFace=Typeface.create("OpenSans",3);
textView = (TexView) findViewById(R.id.textView);
textView.setTypeface(getFace);
如果您同时尝试了res/asset/font和main/asset字体文件夹,并且尝试了不同的字体,但都失败了,那么很可能是Android Studio的错误 我也有同样的问题,但我通过将我的字体导入在线字体编辑器(搜索pentacom字体编辑器)并导出字体并将其保存到新的ttf文件来解决。结果字体的分辨率会更低,但对我来说效果不错
您可能还可以尝试其他在线字体编辑器/导出器。据android开发者介绍: Android 8.0(API级别26)引入了一项新功能,即XML字体,它允许您使用字体作为资源。您可以将字体文件添加到res/font/文件夹中,以将字体捆绑为资源。这些字体在您的R文件中编译,并在Android Studio中自动提供。您可以使用新的资源类型font访问字体资源。例如,要访问字体资源,请使用@font/myfont或R.font.myfont 有关详细信息:将字体文件(例如customfont.tff和customfont\u bold.tff)放在文件夹app>src>res>font>下(注意:如果不存在,请创建字体文件夹) 此外,在同一文件夹中创建名为fonts.xml的文件,其中包含以下内容:
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<font
app:fontStyle="normal"
app:fontWeight="700"
app:font="@font/customfont"/>
<font
app:fontStyle="normal"
app:fontWeight="700"
app:font="@font/customfont_bold"/>
</font-family>
然后,编辑文件app>src>res>values>styles.xml,为整个应用程序应用默认字体
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:fontFamily">@font/customfont</item>
</style>
@颜色/原色
@颜色/原色暗
@颜色/颜色重音
@字体/自定义字体
如果要更改单个UI元素的字体,请执行以下操作:
<TextView
android:fontFamily="@font/customfont"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textColor="@color/black"
android:textSize="18sp"
android:text="Some text"
/>
注意:此方法适用于API级别16+(有关更多信息:)的可能副本