[안드로이드] 외부 글꼴 설정하기, 모든 액티비티에 글꼴 설정하기
1번째 방법
[ 출처 : https://blog.wonhada.com/?p=2001 ]
안드로이드 코드 스니펫(Snippets) :: https://blog.wonhada.com/?p=1990
안드로이드 앱에 커스텀 폰트(Custom Fonts)를 적용하는 방법입니다.
1. app/build.gradle의 dependencies에 추가
1 | compile 'com.tsengvn:Typekit:1.0.0' |
2. 프로젝트폴더\app\src\main\assets에 폰트 파일 추가 (fonts 폴더 만들어서 넣어도 됨)
3. 패키지 루트(MainActivity.java가 있는)에 아래와 같이 CustomStartApp.java 파일 생성
– addNormal, addBold 등은 해당 스타일에 기본적으로 적용되는 것들이고, addCustom1 ~ 9는 레이아웃 xml에서 이용할 수 있는 것들이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package 패키지; import android.app.Application; import com.tsengvn.typekit.Typekit; /** * Created by WonHada.com on 2016-04-20. */ public class CustomStartApp extends Application { @Override public void onCreate() { super.onCreate(); Typekit.getInstance() .addNormal(Typekit.createFromAsset(this, "폰트.ttf")) .addBold(Typekit.createFromAsset(this, "폰트2.ttf")) .addCustom1(Typekit.createFromAsset(this, "폰트3.ttf"));// "fonts/폰트.ttf" } } |
4. AndroidManifest.xml의 application 노드에 아래와 같이 추가
1 2 | <application android:name=".CustomStartApp" |
5. 액티비티마다 아래 코드 추가 (부모 액티비티 하나 만들어서 상속받으면 편함)
1 2 3 4 | @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(TypekitContextWrapper.wrap(newBase)); } |
6. 레이아웃 XML에 Custom1 ~ 9 적용할 경우
1 2 3 4 5 | // 루트 노드에 추가 xmlns:app="http://schemas.android.com/apk/res-auto" // 뷰에 추가 app:font="custom1" |
출처: https://github.com/tsengvn/typekit
2번째 방법
[ 출처 : http://thegreedyman.tistory.com/21 ]
assets폴더에 폰트 파일을 넣어주세요.
또한 Util클래스에 아래의 메소드를 생성 후...
public static void setGlobalFont(Context context,View view){
if (view != null) {
if (view instanceof ViewGroup) {
ViewGroup vg = (ViewGroup) view;
int len = vg.getChildCount();
for (int i = 0; i < len; i++) {
View v = vg.getChildAt(i);
if (v instanceof TextView) {
((TextView) v).setTypeface(Typeface.createFromAsset(context.getAssets(), "Roboto-Regular.ttf"));
}
setGlobalFont(context, v);
}
}
} else {
L.m("This is null);
}
}
Activity에서 아래와 같이 호출해주면 해당 Activity안의 모든 텍스트뷰에 해당 폰트가 적용된다.
;
첫번째 방법이 효율적이다. 2번째 방법은 느리다.
'IT > 안드로이드+JAVA' 카테고리의 다른 글
[안드로이드] EditText 모서리 둥글게 (0) | 2016.09.02 |
---|---|
[안드로이드] 체크박스 박스 없애고 이미지 넣기 (0) | 2016.09.02 |
[안드로이드] glide 라이브러리, 이미지뷰 url gif, 이미지뷰 gif (0) | 2016.08.29 |
[안드로이드] 소프트 키보드 제어, 하단 배너 고정 (0) | 2016.08.25 |
[안드로이드] 소프트키보드에 가려진 EditText 키보드 위로 올리기 (0) | 2016.08.24 |