이번에는 기본 폰트가 아닌 외부의 폰트를 사용해 보려한다.
이클립스에서는 간단히 assets폴더에 폰트 파일을 집어넣고 ..
((TextView) v).setTypeface(Typeface.createFromAsset(context.getAssets(),
"Roboto-Regular.ttf"));
와 같이 적어 주면 간단히 끝난다.
하지만... 안드로이드 스튜디오에 assets폴더가 없더라.... 헐..
검색해보니
위와 같이 Project-app-src-main 폴더에서 우클릭후 new-directory에서 "asset" 폴더를
만든 후 폰트파일들을 옮겨놓으면 끝...
또한 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안의 모든 텍스트뷰에 해당 폰트가 적용된다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView(R.layout.activity_login);
Util.setGlobalFont(this, getWindow().getDecorView());
}
또한 listView 같이 아이템뷰들을 Inflate하는 경우는 다음과 같습니다.
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=inflater.inflate(R.layout.work_list_row, parent,false);
Util.setGlobalFont(context, view);
MyViewHolder holder=new MyViewHolder(view);
return holder;
}
'안드로이드 개발' 카테고리의 다른 글
안드로이드 Material Design 아이콘 (0) | 2015.07.02 |
---|---|
안드로이드 Fragment에 테마적용 (1) | 2015.06.24 |
안드로이드 스튜디오 SVN연동 (1) | 2015.06.09 |
안드로이드 날짜관련 펑션모음 (0) | 2015.06.09 |
안드로이드 전화번호 포맷설정 (0) | 2015.06.09 |
WRITTEN BY