[Android Studio] 匯入ttf檔,改變預設的字體(字形)
在自己的Android專案底下,路徑/app/src/main/res/ 建立font的資料夾
並且在font資料夾裡放入*.ttf 檔
假設你的ttf檔全名是abc.ttf
那放置的路徑就是: /app/src/main/res/font/abc.ttf
匯入之後,若是要在TextView物件裡加入abc.ttf檔的字體,則XML裡程式碼如下:
<TextView
android:id="@+id/textview123"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"
android:fontFamily="@font/ab_yz"
android:textColor="@color/black"
android:textSize="22sp" />
顏色為紅色的地方就是我加入名為ab_yz的ttf檔
那如果是要在程式碼中改變字體呢? 很簡單,以TextView為例:
textView123.setTypeface(ResourcesCompat.getFont(this, R.font.ab_yz));
就可以了!
結果比對 左是原本的系統預設字體,右邊是改過後的字體:
匯入成功後,在compiler時會出現以下錯誤:
java.lang.NoSuchMethodException: android.graphics.FontFamily.<init> []
...
全部錯誤碼太長我就不貼了。
解決方式是在build.gradle(:app) 裡加入
def core_version = "1.3.2"
// Java language implementation
implementation "androidx.core:core:$core_version"
// Kotlin
implementation "androidx.core:core-ktx:$core_version"
參考資料 reference:
解決compiler會產生錯誤的參考
留言
張貼留言