[英]custom font in Android Studio
如何在android studio中創建自定義字體? 我試圖使用自定義字體,我讀過我想將字體放在資產/字體中。 我一直在努力尋找,但卻沒有找到任何幫助。 哪里錯了? 我真的不知道該怎么辦。 我在下面寫了所有細節。 我嘗試過但沒有成功。 我正在使用Android Studio,似乎我沒有資產文件夾。 所以我創建了一個。 但是當我將資源文件夾放在/ 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
更新
我的fonte文件目錄: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:FATAL EXCEPTION:main進程:com.mmd2009.readnews,PID:4206 java.lang.RuntimeException: 無法在android上創建本機字體 。在android.os上的com.mmd2009.readnews.MainActivity $ ReadNewsAsyncTask.onPreExecute(MainActivity.java:216)的android.graphics.Typeface.createFromAsset(Typeface.java:149)上的graphics.Typeface。(Typeface.java:175)。位於android.view.View的com.mmd2009.readnews.MainActivity $ 1.onClick(MainActivity.java:70)的android.os.AsyncTask.execute(AsyncTask.java:535)上的AsyncTask.executeOnExecutor(AsyncTask.java:587)。在Android.os.Handler.dispatchMessage(Handler)上的android.view.View $ PerformClick.run(View.java:18422)android.os.Handler.handleCallback(Handler.java:733)執行點擊(View.java:4438) .java:95)在android.app.Looper.loop(Looper.java:136)的android.app.ActivityThread.main(ActivityThread.java:5017)at java.lang.reflect.Method.invokeNative(Native Method)at at java.lang.reflect.Method.invoke(Method.java :515)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)位於dalvik.system.NativeStart的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)。 main(原生方法)
我的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>
您的字體路徑不正確。 你沒有font
文件夾。 將您的字體路徑更改為"Tahoma.ttf"
,或在資產文件夾中創建文件夾。
編輯
這似乎是Android OS偶爾發生的錯誤。 看看這個鏈接,它似乎已經解決了。 “只能為某些人制作”原生字體“
可能是您指的是不存在的字體文件。 您的目錄列表中沒有顯示fonts/Tahoma.ttf
,這是您的代碼所指的內容。
除此之外,Android可能因某種原因而不喜歡您的字體文件。 嘗試使用其他字體文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.