티스토리 뷰
※안드로이드 스튜디오 버전이 3.0 이상 되어야 합니다.
안드로이드 스튜디오가 3.0으로 업데이트 되면서, 폰트 적용이 xml에서 가능하도록 되었습니다.
이제 간편하게 굴림체의 압박으로부터 벗어납시다.
1. 먼저 적용할 폰트를 다운 받습니다.(라이선스가 없는 것을 추천합니다.)
저는 배달의 민족 주아체(보통)을 예로 들겠습니다.
(만약, 기존에 쓰던 폰트를 안드로이드에 적용하고 싶으면 Windows 폴더 내의 Fonts 폴더에서 적용할 폰트를 골라냅니다.)
2. 안드로이드 res(리소스 폴더) 내에 font 폴더를 만들고, 해당 폰트 파일을 붙여넣기 한다.
- res오른쪽 클릭 -> new -> android resource directory 선택
다음과 같이 설정 하고 폴더를 생성 후에 폰트를 넣어준다.
3. font 폴더 내에 Font resource file을 만들고, 다음과 같이 설정
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<font
android:font="@font/jua"
android:fontStyle="normal"
app:font="@font/jua"
app:fontStyle="normal" />
</font-family>
안의 내용에 대해 부가설명을 하자면
font 태그내에 네임스페이스 android: 로 표기한것은 API 26(8.0, 오레오)이상을 지원하며,
네임스페이스 app: 으로 만든 것은 API 13(3.2 허니컴)까지 폭넓게 지원하기 위함이다.
4. XML 내에서 폰트 적용
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="폰트"
android:textSize="100sp"
android:fontFamily="@font/font_jua"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"app:layout_constraintBottom_toBottomOf="parent" />
변경할 텍스트 뷰 태그 내에서
다음과 같이 설정한다.
적용된 것을 확인할 수 있다.
※ JAVA 코드상에서 동적으로 폰트 적용시키기
1. API 26 이상
Typeface typeface = getResources().getFont(R.font.jua);
message.setTypeface(typeface); // messsage는 TextView 변수
2. API 26 이하
만약, xml에 적용하기 위해 res 폴더 내에 font 폴더를 만들었다면 지우고..
다음과 같이 Assets 폴더를 만들어 준다.
이후, 다음과 같이 Directory를 만들어 주고 font로 만들어준다. 그 폴더 안에다 폰트파일을 넣어준다.(xml은 안넣어도 됨)
코드상에선, 다음과 같이 설정해준다.
Typeface typeface = Typeface.createFromAsset(getAssets(), "font/jua.ttf"); // font 폴더내에 있는 jua.ttf 파일을 typeface로 설정
message.setTypeface(typeface); // messsage는 TextView 변수
'개발일지 > 안드로이드 개발' 카테고리의 다른 글
바운드 서비스와, 콜백을 이용하여 액티비티와 서비스간 통신을 구현해 보자. (0) | 2018.06.10 |
---|---|
네이버, 카카오톡, 구글 연동 로그인을 구현해보자. (0) | 2018.06.10 |
(자답) android.view.inflateexception: binary xml file line ~ 오류 해결법 (0) | 2018.06.05 |
개인적으로 쓰는 Intellij Idea 단축키들 (0) | 2018.05.25 |
라이브러리 버터나이프 기본적인 사용법 (0) | 2018.05.23 |