assets 폴더에 적용할 폰트를 넣어놓고 아래 코드를 적용한다.
여기서는 Roboto-Thin.ttf 폰트를 예로 들어 표기한다.
MainActivity.java@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Typeface mFont = Typeface.createFromAsset(getAssets(), "Roboto-Thin.ttf"); ViewGroup root = (ViewGroup) findViewById(R.id.mylayout); setFont(root, mFont); } public void setFont(ViewGroup group, Typeface font) { int count = group.getChildCount(); View v; for (int i = 0; i < count; i++) { v = group.getChildAt(i); if (v instanceof TextView || v instanceof EditText || v instanceof Button) { ((TextView) v).setTypeface(font); } else if (v instanceof ViewGroup) setFont((ViewGroup) v, font); } }
activity_main.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/mylayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Hello!" android:textSize="40sp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Click!" android:textSize="40sp" /> </LinearLayout>
반응형
'Developer > Android' 카테고리의 다른 글
스크롤 페이징의 지연 없는 데이터 전달(Non-stop data delivery) (0) | 2015.02.10 |
---|---|
SupportMapFragment Duplicate id 오류 (0) | 2014.06.20 |
외부 앱 실행시키기 (0) | 2014.06.11 |