본문 바로가기
안드로이드 스튜디오

[안드로이드 스튜디오] 폰트(font) 바꾸기

by sojung118 2024. 9. 5.

오늘도 돌아온 안드로이드 스튜디오의 시간 :)

이전 포스팅에서 자기소개앱 xml을 만든것을 보면 평소와 다른 글씨체를 볼 수 있을 것이다.

 

평소 글씨체 (안드로이드 기본)
ttf 적용한 글씨체

 

 

이 폰트가 평소 아무 설정도 하지 않았을때 안드로이드에서 기본으로 제공하는 폰트이다.

근데 너무 이 폰트가 질리기도 하고 딱딱한 느낌이기도 해서

내가 가지고 있는 ttf 폰트로 바꿀 순 없을까? 생각하면서 인터넷에 검색을 시작했다.

그리고 알아낸 폰트 바꾸는 방법을 공유하려고 한다!

 


 

우선 가장 먼저 ttf폰트나 otf폰트가 컴퓨터에 다운되어있어야한다.

나같은 경우 이전에 다운받아놓은 ttf 폰트가 있기 때문에 그 폰트로 진행했다.

 

 

 

안드로이드 스튜디오 앱에서 res 폴더에서 우클릭을 한 후

 

 

 

Android Resoure Directory 를 추가해준다.

 

 

 

 

그러면 나오는 이 창에서

Directory name, Resource type을 모두 font로 바꾸어준다.

 

 

 

 

그러면 생기는 font 폴더 아래에 내가 원래 가지고 있는 ttf를 추가시켜준다

이때 이름을 변경해주는데, 다른 포스팅들을 보니까 대문자를 쓰면 안된다고...

소문자+영어 조합은 가능한 것 같은데 그냥 소문자로만 구성해서 temperature.ttf 로 바꾸어주었다.

ttf를 추가해준뒤에는 font 폴더에서 우클릭 후 

font폴더 → New → Font Resource File 로 들어가서 font.xml을 생성해준다.

 

 

font.xml의 내용은 아래와 같다.

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">

    <font
        android:font="@font/temperature"
        android:fontWeight="400"
        android:fontStyle="normal"/>



</font-family>

 

@font 폴더 내에 첨부해 둔 ttf 파일을 android:font="@font/temperature" 에 넣어주고

fontWeight와 fontStyle을 각각 준다.

 

 

여기까지해주면 폰트 설정은 완료되었다!

이제 이 폰트를 activity_main.xml에 적용만 시켜주면된다.

 

그래서 제일 처음에는 가장 큰 LinearLayout인

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F2EDED"
    tools:context=".MainActivity">

 

여기에 android:fontFamily = "@font/font" 로 주면 될 줄 알았는데...

왜인지는 모르겠지만 LinearLayout에 폰트 속성을 주면 적용이 되지 않았다.

제일 큰 LinearLayout 뿐만 아니라 작은 LinearLayout에서도 똑같았다.

그래서 그냥 내가 사용한 TextView에 하나하나 적용시켜주기로...

 

android:fontFamily = "@font/font" 를 모든 TextView 안에 넣어주기만 하면 된다.

 

 

[ activity_main.xml ] 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F2EDED"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/iv_me"
                android:src="@mipmap/sojung"
                android:layout_margin="8dp"
                android:layout_width="180dp"
                android:layout_height="180dp"/>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:gravity="center_vertical">


                <TextView
                    android:fontFamily="@font/font"
                    android:text="이소정"
                    android:textColor="#3A3939"
                    android:textStyle="bold"
                    android:textSize="35sp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>

                <TextView
                    android:fontFamily="@font/font"
                    android:layout_marginTop="10dp"
                    android:text="부경대 / 컴퓨터공학전공"
                    android:textSize="20sp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>


                <TextView
                    android:fontFamily="@font/font"
                    android:layout_marginTop="10dp"
                    android:text="PKNU_GUTTER 33th"
                    android:textSize="20sp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>


            </LinearLayout>


        </LinearLayout>

        <TextView
            android:background="#C1BEBE"
            android:layout_width="match_parent"
            android:layout_height="3dp"/>

        <TextView
            android:fontFamily="@font/font"
            android:layout_marginTop="13dp"
            android:layout_marginLeft="20dp"
            android:textSize="25sp"
            android:textStyle="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="키워드 소개"/>


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_margin="7dp">


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                <Button
                    android:fontFamily="@font/font"
                    android:id="@+id/btn_language"
                    android:layout_margin="2dp"
                    android:backgroundTint="#B39374"
                    android:textSize="19sp"
                    android:layout_width="0dp"
                    android:layout_height="80dp"
                    android:layout_weight="1"
                    android:text="프로그래밍"/>

                <Button
                    android:fontFamily="@font/font"
                    android:id="@+id/btn_site"
                    android:layout_margin="2dp"
                    android:backgroundTint="#D3B79C"
                    android:textSize="19sp"
                    android:layout_width="0dp"
                    android:layout_height="80dp"
                    android:layout_weight="1"
                    android:text="사이트"/>

                <Button
                    android:fontFamily="@font/font"
                    android:id="@+id/btn_hobby"
                    android:layout_margin="2dp"
                    android:backgroundTint="#B39374"
                    android:textSize="19sp"
                    android:layout_width="0dp"
                    android:layout_height="80dp"
                    android:layout_weight="1"

                    android:text="취미"/>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                <Button
                    android:fontFamily="@font/font"
                    android:id="@+id/btn_mbti"
                    android:layout_margin="2dp"
                    android:backgroundTint="#D3B79C"
                    android:textSize="19sp"
                    android:layout_width="0dp"
                    android:layout_height="80dp"
                    android:layout_weight="1"
                    android:text="ISFP"/>

                <Button
                    android:fontFamily="@font/font"
                    android:id="@+id/btn_bowling"
                    android:layout_margin="2dp"
                    android:backgroundTint="#B39374"
                    android:textSize="19sp"
                    android:layout_width="0dp"
                    android:layout_height="80dp"
                    android:layout_weight="1"

                    android:text="볼링"/>

                <Button
                    android:fontFamily="@font/font"
                    android:id="@+id/btn_study"
                    android:layout_margin="2dp"
                    android:backgroundTint="#D3B79C"
                    android:textSize="19sp"
                    android:layout_width="0dp"
                    android:layout_height="80dp"
                    android:layout_weight="1"

                    android:text="공부"/>

            </LinearLayout>


        </LinearLayout>

        <TextView
            android:background="#C1BEBE"
            android:layout_width="match_parent"
            android:layout_height="3dp"/>

        <TextView
            android:fontFamily="@font/font"
            android:layout_marginTop="13dp"
            android:layout_marginLeft="20dp"
            android:textSize="25sp"
            android:textStyle="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="자기 소개"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:fontFamily="@font/font"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="15dp"
                android:textSize="18sp"
                android:text="안녕하세요. 개발을 공부하고 내다보는 이소정입니다 :) \n이것은 안드로이드 스튜디오를 활용한 소개 어플입니다.\n어플을 둘러보시면서 더 많은 정보를 얻어가세요!"/>

        </LinearLayout>


        <TextView
            android:background="#C1BEBE"
            android:layout_width="match_parent"
            android:layout_height="3dp"/>

        <TextView
            android:fontFamily="@font/font"
            android:layout_marginTop="13dp"
            android:layout_marginLeft="20dp"
            android:textSize="25sp"
            android:textStyle="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="참고 URL"/>



        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="10dp">

            <TextView
                android:fontFamily="@font/font"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="0dp"
                android:textSize="18sp"
                android:text="https://sojung118.tistory.com/"/>
            <TextView
                android:fontFamily="@font/font"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="0dp"
                android:textSize="18sp"
                android:text="https://github.com/SojungLeeee"/>


        </LinearLayout>

    </LinearLayout>

</LinearLayout>

 

 

뭔가 효율적이진 않지만 모든 TextView에 다 설정해준것을 볼 수 있다...ㅎㅎ

한번에 다 적용시키는 방법이 없을까 ㅠㅠ.. 아시는분이 계시다면 알려주세요 :)