【问题标题】:custom font in Android StudioAndroid Studio 中的自定义字体
【发布时间】:2014-08-18 12:46:42
【问题描述】:

如何在 android studio 中创建自定义字体? 我正在尝试使用自定义字体,并且我读过我想将字体放在资产/字体中。 我已经搜索了很长时间,但没有找到任何帮助。 我哪里错了?我真的不知道该怎么办。 我在下面写了所有细节。我已经尝试过,但没有成功。 我正在使用 Android Studio,但我似乎没有资产文件夹。所以我创造了一个。但是当我将 assets 文件夹放在 /main/assets 中时,我的应用程序崩溃了。我使用此代码加载我的字体。

我知道。 Android Studio 0.5.2 中项目的结构:

root-module
|--.idea
|--app
|----build
|----src
|------main
|--------assets
|----------fonts/SomeFont.ttc
|----------fonts/AnotherFont.otf
|--------java
|----------source code here
|--------res
|------AndroidManifest.xml
|----build.gradle

更新

我的字体文件目录:E:\AndroidProjects\ReadNews\ReadNews\src\main\assets\fonts\

结束更新

我的代码:

 @Override
     protected void onPreExecute() {
            TextView titleTextView = (TextView) _dialog.findViewById(R.id.title_news_TextView);
            TextView messageTextView = (TextView) _dialog.findViewById(R.id.message_TextView);
            String fontPath = "fonts/Tahoma.ttf";
            Typeface tf = Typeface.createFromAsset(MainActivity.this.getResources().getAssets(), fontPath);
            titleTextView.setTypeface(tf);
            messageTextView.setTypeface(tf);
        }

错误:

06-27 07:40:37.985 4206-4206/com.mmd2009.readnews E/AndroidRuntime﹕ 致命例外:主要 进程:com.mmd2009.readnews,PID:4206 java.lang.RuntimeException: 无法制作原生字体 在 android.graphics.Typeface.(Typeface.java:175) 在 android.graphics.Typeface.createFromAsset(Typeface.java:149) 在 com.mmd2009.readnews.MainActivity$ReadNewsAsyncTask.onPreExecute(MainActivity.java:216) 在 android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587) 在 android.os.AsyncTask.execute(AsyncTask.java:535) 在 com.mmd2009.readnews.MainActivity$1.onClick(MainActivity.java:70) 在 android.view.View.performClick(View.java:4438) 在 android.view.View$PerformClick.run(View.java:18422) 在 android.os.Handler.handleCallback(Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5017) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 在 dalvik.system.NativeStart.main(Native Method)

我的 ReadNews-ReadNews.iml :

  <facet type="android" name="Android">
      <configuration>
        <option name="SELECTED_BUILD_VARIANT" value="debug" />
        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
        <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
        <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
        <option name="ALLOW_USER_CONFIGURATION" value="false" />
        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
      </configuration>
    </facet>

【问题讨论】:

    标签: android fonts android-typeface


    【解决方案1】:

    您可能指的是不存在的字体文件。您的目录列表未显示 fonts/Tahoma.ttf,这是您的代码所指的内容。

    除此之外,Android 可能出于某种原因根本不喜欢您的字体文件。尝试不同的字体文件。

    【讨论】:

    • 我使用不同的字体文件但是我的应用程序崩溃了。我的字体文件是“arial.ttf”
    • @user3763877:你的路径是fonts/Tahoma.ttf。不仅没有Tahoma.ttf 文件,而且assets/ 内部也没有fonts/ 目录。
    • 我有一个字体文件夹。上面的结构只是一个例子。我的字体文件目录:E:\AndroidProjects\ReadNews\ReadNews\src\main\assets\fonts\
    【解决方案2】:

    您的字体路径不正确。您没有font文件夹。将字体路径更改为 "Tahoma.ttf",或在资产文件夹中创建文件夹。

    编辑

    这似乎是 Android 操作系统有时会出现的错误。看看这个链接,它似乎已经被解决了。 "Native typeface cannot be made" only for some people

    【讨论】:

    • 我有一个字体文件夹。上面的结构只是一个例子。
    猜你喜欢
    • 1970-01-01
    • 2020-04-21
    • 2015-12-12
    • 2017-08-08
    • 2013-11-28
    • 2011-04-12
    • 2015-12-29
    • 1970-01-01
    • 2015-06-08
    相关资源
    最近更新 更多