在Android的工作室自定义字体 [英] custom font in Android Studio

查看:213
本文介绍了在Android的工作室自定义字体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何创建机器人工作室自定义字体? 我试着去使用自定义的字体,我读过,我想,把资产/字体的字体。 我已经搜索漫长而艰难的,但发现没有什么帮助呢。 我哪里错了?我真的不知道该怎么办。 我写了下面的所有细节。我试过,没有成功。 我使用的是Android的工作室,它似乎并没有像我有一个资产文件夹。所以,我创建了一个。但我的应用程序崩溃时,我把资产目录/主/资产。即时通讯使用这种code加载我的字体。

我知道。结构在Android的工作室0.5.2项目:

 根模块
|  - 思路
| --app
| ----构建
| ---- SRC
| ------主
| --------资产
| ----------字体/ SomeFont.ttc
| ----------字体/ AnotherFont.otf
| -------- java的
| ----------源$ C ​​$ C在这里
| --------资源
| ------ AndroidManifest.xml中
| ---- build.gradle
 

更新

我丰泰文件目录:E:\ AndroidProjects \ ReadNews \ ReadNews的\ src \主\资产\字体\

末更新

我的code:

  @覆盖
     在preExecute保护无效(){
            TextView的titleTextView =(TextView中)_dialog.findViewById(R.id.title_news_TextView);
            TextView的messageTextView =(TextView中)_dialog.findViewById(R.id.message_TextView);
            字符串字体路径=字体/ Tahoma.ttf;
            字样TF = Typeface.createFromAsset(MainActivity.this.getResources()getAssets(),字体路径。);
            titleTextView.setTypeface(TF);
            messageTextView.setTypeface(TF);
        }
 

错误:

  

七月6日至27日: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.on preExecute(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(本机方法)               在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(本机方法)

我ReadNews-ReadNews.iml:

 <面型=Android的名称=机器人>
      <结构>
        <选项名称=SELECTED_BUILD_VARIANT值=调试/>
        <选项名称=ASSEMBLE_TASK_NAME值=assembleDebug/>
        <选项名称=COMPILE_JAVA_TASK_NAME值=compileDebugJava/>
        <选项名称=ASSEMBLE_TEST_TASK_NAME值=assembleDebugTest/>
        <选项名称=SOURCE_GEN_TASK_NAME值=generateDebugSources/>
        <选项名称=ALLOW_USER_CONFIGURATION值=FALSE/>
        <选项名称=MANIFEST_FILE_RELATIVE_PATH值=/ src目录/主/ AndroidManifest.xml中/>
        <选项名称=RES_FOLDER_RELATIVE_PATH值=/ src目录/主/ RES/>
        <选项名称=RES_FOLDERS_RELATIVE_PATH值=文件:// $ MODULE_DIR $ / src目录/主/ RES/>
        <选项名称=ASSETS_FOLDER_RELATIVE_PATH值=/ src目录/主/资产/>
      < /结构>
    < /面>
 

解决方案

您的字体路径不正确。你有没有字体文件夹。改变您的字体路径,只是Tahoma.ttf,或创建您的资产文件夹内的文件夹中。

修改

这似乎是与Android操作系统的发生有时一个错误。看看这个链接,似乎它已被解决。 <一href="http://stackoverflow.com/questions/12766930/native-typeface-cannot-be-made-only-for-some-people">"Native字体不能作出&QUOT;只对某些人

How to create custom fonts in android studio ? Im trying to use a custom font, and I've read that I suppose to place the fonts in assets/fonts. I have searched long and hard but found nothing that helped yet. Where I wrong? I really do not know what to do. I wrote all the details below. I've tried and did not succeed. I'm using Android Studio and it doesn't seem like I have a assets folder. So I created one. But my app crashes when I place the assets folder in /main/assets. Im using this code to load my fonts.

I know that . structure for a project in 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

Update

my fonte file dir : E:\AndroidProjects\ReadNews\ReadNews\src\main\assets\fonts\

end Update

my code :

 @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);
        }

error :

06-27 07:40:37.985 4206-4206/com.mmd2009.readnews E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.mmd2009.readnews, PID: 4206 java.lang.RuntimeException: native typeface cannot be made at android.graphics.Typeface.(Typeface.java:175) at android.graphics.Typeface.createFromAsset(Typeface.java:149) at com.mmd2009.readnews.MainActivity$ReadNewsAsyncTask.onPreExecute(MainActivity.java:216) at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587) at android.os.AsyncTask.execute(AsyncTask.java:535) at com.mmd2009.readnews.MainActivity$1.onClick(MainActivity.java:70) at android.view.View.performClick(View.java:4438) at android.view.View$PerformClick.run(View.java:18422) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method)

my 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>

解决方案

Your font path is incorrect. You have no fontfolder. Change your font path to just "Tahoma.ttf", or create the folder inside of your asset folder.

EDIT

This appears to be a bug that happens with Android OS on occasion. Check out this link, it appears it has been addressed already. "Native typeface cannot be made" only for some people

这篇关于在Android的工作室自定义字体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆