【AndroidStudio】TextViewを任意のフォントに変更する方法【Java】

左画像から右画像へ
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/868c840c-ece1-9ab6-847f-645614231d5f.jpeg" width=45%> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/3ceee2b0-4645-1842-75a7-ecf6037f2122.jpeg" width=45%>


##はじめに##
フリーフォントを用意します。
FONT FREE（https://fontfree.me/）
フリーフォントケンサク（https://cute-freefont.flop.jp/）
他にも沢山ありますが、上記のサイトおすすめです。
今回はこちら「ロンドB」を使用します。使用したいフォントをダウンロードしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/fdfa4893-f79a-96c9-127a-a275db560ad4.png)

##プロジェクトを用意します
今回 TestFont という名前でプロジェクトを作成しました。
 MainActivity.java と activity_main.xml があることを前提に進めていきます。

プロジェクト名や保存場所などは、ご自身のプロジェクトに合わせて変更してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/3e9e2040-cdf2-887d-ba18-2112fd636fc9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/7d3b5965-b3e3-d722-36d8-dc8a1e27114a.png)

##assets フォルダを用意します##
フォントファイルは asset フォルダに置く必要がありますが、最初はありませんので作成します。
AndroidStudio 画面左上の app の上で右クリック、**New → Folder → Asset Folder** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/2f2c293c-a79a-fbcb-6583-01d784eff513.png)
Target Source Set が main になっていることを確認して Finish を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/d422e068-1956-21b2-9184-10c8adcb842b.png)
assets フォルダが作成されました。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/9e4bc282-cc25-84b1-0c79-e355d7fe01e9.png">
assets フォルダの上で右クリック、Show in Explorer を選択します。
（もちろんエクスプローラーを自身で展開していっても大丈夫です）
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/b418e94b-8c71-8d45-c200-4c944000f2ec.png">
assets フォルダの中にダウウンロードしたフォントファイルを置きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/a828d04d-4eda-da4f-c5eb-bd51149ababe.png)

AndroidStudio の assets フォルダを開いたときフォントファイルが追加されていれば準備完了です。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/7a0220f7-8883-4061-cefe-e2f2f34c2553.png">
##.xmlファイルにタグ付け##
デフォルトから2行追加しました。
.java ファイルでタグを使用するので、 text="Hello World!" にタグをつけます。2行目です。
文字が小さくて見にくいので大きくしました。6行目です。

```java:activity_main.xml
    <TextView
        android:id="@+id/text01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="30sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
```
##.javaファイルに導入##
デフォルトがこちら

```java:MainActivity.java
package test.com.testfont;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
```
onCreateメソッドの3,4,5行目が追加した行です。 変数（rondeB,text など）は適宜変更してください。
import は自動追加されると思います。
（自動追加されないときは Alt + Enter で追加されます）

```java:MainActivity.java
package test.com.testfont;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Typeface rondeB = Typeface.createFromAsset(getAssets(), "Ronde-B_square.otf");
        TextView text = findViewById(R.id.text01);
        text.setTypeface(rondeB);
    }
}
```
##できあがったもの##
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/3ceee2b0-4645-1842-75a7-ecf6037f2122.jpeg" width=50%>
##参考##
[【Android Studio】カスタムフォントを使用する方法（Javaコード編）](https://codeforfun.jp/android-studio-how-to-use-custom-fonts/)