티스토리 뷰
안드로이드 스튜디오 사용자 정의 폰트 만들기, duplicate value for resource 'attr/font' with config 에러
먈랑 2018. 1. 18. 13:39기존에 커스텀 폰트를 만들고 추가하는 과정은 특정 폴더에 폰트 ttf 파일을 추가하고,
이를 Typekit으로 불러오는 거였는데요,
2017년 7월쯤부터 안드로이드 오레오(Android 8) 업데이트로 Font in XML이 생기면서
gradle.build에 Typekit을 추가하면 (compile 'com.tsengvn:Typekit:1.0.0') 에러가 생기게 되었습니다.
앞으로 안드로이드 스튜디오에서 커스텀 폰트를 넣으려면 xml에서 설정하는게 이런 오류를 피할 수 있겠죠
아래는 XML에서 커스텀 폰트를 설정하는 방법입니다.
1. src/main/res폴더에서 오른쪽 클릭, new - Android resource directory로 새 폴더를 만듭니다.
이름은 바꿔도 상관없지만 font로 합니다. Resource type은 font로 해야 합니다. OK를 누릅니다.
2. 새 폴더에 폰트 파일을 넣습니다. (사진엔 대문자가 있지만 저러면 오류납니다.
폰트 파일 이름은 모두 소문자로 해주세요)
3. 새 폴더 오른쪽 클릭, new - Font Resource file을 눌러 xml 파일을 만듭니다. 역시 이름은 자율입니다.
4. font-family 태그 안에
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/nanumgothic" />
을 넣습니다. nanumgothic 에는 추가할 폰트 이름을 쓰면 됩니다.
fontStyle은 normal과 Italic이 있고 italic 폰트가 있다면 따로 추가하면 됩니다.
5. 폰트를 적용할 레이아웃 xml 파일에서 android:fontFamily를 입력하고 사용할 폰트를 찾습니다.
폰트 적용이 끝났습니다.
+ 커스텀 폰트를 전체적으로 적용하려면
res/values/style.xml에 아래 파란 내용을 추가해줍니다.
각각 텍스트뷰 기본 폰트, 액션바 기본 폰트를 나눔고딕으로 변경합니다.
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textViewStyle">@style/CustomTextView</item>
<item name="android:actionBarStyle">@style/CustomActionBar</item>
</style>
<style name="CustomTextView" parent="@android:style/Widget.DeviceDefault.TextView">
<item name="android:fontFamily">@font/nanumgothic</item>
</style>
<style name="CustomActionBar" parent="@android:style/Widget.DeviceDefault.ActionBar">
<item name="android:fontFamily">@font/nanumgothic</item>
</style>
+빌드를 돌리는데
'N' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore
이런 에러가 납니다.
리소스 폴더 내부에는 대문자를 사용할 수 없는데, 폰트 파일에 대문자가 포함되어 있어 생긴 오류입니다.
폰트 파일을 수정해주면 됩니다. (Rename하려니 읽기전용이라 안되서 폴더에서 삭제하고 소문자로 바꾼 파일을 다시 넣었습니다)
저같은 실수 하지 말고 처음부터 소문자 씁시다ㅠㅠ
'먈랑코딩' 카테고리의 다른 글
초보자도 할 수 있는 어플 만들기 예제 2 - 프로젝트 구조와 Toast로 메세지 띄우는 법 (6) | 2018.01.14 |
---|---|
초보자도 할 수 있는 어플 만들기 예제 1 - 안드로이드 스튜디오 설치 및 새 프로젝트 만들기 (2) | 2018.01.13 |
인풋박스(input box) 한글/영어 우선 입력 (948) | 2018.01.05 |
- Total
- Today
- Yesterday
- 김연아 등덕
- 더반연느
- 아이스 올 스타 2009
- 김연아 우산광고
- 김연아 춤 광고
- 김연아 노란우산 광고
- 키앤크
- 어플 만들기
- 고양이정원게임
- 2010 페스타온아이스
- 정장연느
- 판타지웹툰 #십이지 #한국신화 #전통한식 #호랑이 #퍼리 #떡볶이 #가래떡
- 김연아 댄스 광고
- 북미판 니키가이드
- 고양이정원
- 주식투자 #선물옵션 #도박중독
- 기적난난 이벤트
- 니키 이벤트
- 기적난난
- 김연아 월광 소나타
- 중판니키
- 생리컵
- 중판니키 이벤트
- 김연아 복싱광고
- 키앤크 연느
- 피버 변신짤
- 안드로이드 스튜디오
- 국민은행 김연아 광고
- 럽프
- 앱 만들기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |