我想知道如何在Android Studio中使用外部字体,因为没有 资产文件夹 。我在互联网上寻找一个有用的turtorial,但他们都假装使用Assets文件夹。
我自己在src/main
创建了一个资源文件夹,但Android Studio无法识别getAssets()
。
答案 0 :(得分:39)
继续使用您的项目:app - > src - > main
像这样创建资产文件夹:
|assets
|-----------------fonts
|-------------------font.ttf
|java
|res
AndroidManifest.xml
然后使用
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/digital.ttf");
txtV.setTypeface(face);
答案 1 :(得分:7)
如果您有自定义字体,请使用以下代码:
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/Verdana.ttf");
tv.setTypeface(face);
同样将您的字体文件放在assets / fonts文件夹中,并从此处跟随instructions。
注意:您必须自己制作资产文件夹
答案 2 :(得分:2)
将字体文件(例如customfont.tff和customfont_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+有效(有关更多信息:https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml)
答案 3 :(得分:0)
如果您遇到错误&#34; getAssets()&#34;方法然后你可以使用以下方式。 在assets文件夹中放置字体系列
Typeface getFace=Typeface.create("OpenSans",3);
textView = (TexView) findViewById(R.id.textView);
textView.setTypeface(getFace);
答案 4 :(得分:0)
如果您尝试了res / asset / font和main / asset字体文件夹,并且您尝试过不同的字体,但它无法正常工作 - 它很可能是Android工作室错误。
我有同样的问题,但我通过将我的字体导入在线字体编辑器(搜索pentacom字体编辑器)并导出字体并将其保存到新的ttf文件来解决它。结果字体的分辨率会降低,但它对我有用。
您可以尝试其他在线字体编辑/出口商。
答案 5 :(得分:0)
根据android开发人员的说法: Android 8.0(API级别26)引入了一项新功能,即XML中的字体,它允许您将字体用作资源。您可以在res / font /文件夹中添加字体文件以将字体捆绑为资源。这些字体在您的R文件中编译,并在Android Studio中自动提供。您可以借助新的资源类型字体访问字体资源。例如,要访问字体资源,请使用@ font / myfont或R.font.myfont。
了解更多详情:https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html