1. 글꼴
안드로이드는 기본적으로 몇 가지 글꼴이 포함돼있으며, 원하는 글꼴을 따로 추가할 수 있다.
1.1 기본 포함 글꼴
안드로이드는 기본적으로 'sans', 'serif', 'monospace'의 세 가지 글꼴이 내장돼 있다. 세 가지 글꼴 모두 어센터(Ascender)에서 오픈 핸드셋 얼라이언스(Open Handset Alliance)에 제공한 드로이드 글꼴이다.
- 드로이드 글꼴을 사용하려면 XML 레이아웃 파일에서 해당 글꼴을 바로 참조하면 된다.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:text="sans:"
android:layout_marginRight="4px"
android:textSize="20sp"
/>
<TextView
android:id="@+id/sans"
android:text="Hello, world!"
android:typeface="sans" android:textSize="20sp"
/>
</TableRow>
<TableRow>
<TextView
android:text="serif:"
android:layout_marginRight="4px"
android:textSize="20sp"
/>
<TextView
android:id="@+id/serif"
android:text="Hello, world!"
android:typeface="serif" android:textSize="20sp"
/>
</TableRow>
<TableRow>
<TextView
android:text="monospace:"
android:layout_marginRight="4px"
android:textSize="20sp"
/>
<TextView
android:id="@+id/monospace"
android:text="Hello, world!"
android:typeface="monospace" android:textSize="20sp"
/>
</TableRow>
<TableRow>
<TextView
android:text="Custom:"
android:layout_marginRight="4px"
android:textSize="20sp"
/>
<TextView
android:id="@+id/custom"
android:text="Hello, world!"
android:textSize="20sp"
/>
</TableRow>
</TableLayout>
원하는 외부 글꼴을 사용하는 방법
- 홈디렉토리에 assets/라는 디렉토리를 생성
- assets/fonts 등의 디렉토리를 생성하여 관리하는 것이 깔끔
- 트루타입 글꼴 파일(TTF 파일)을 assets/ 디렉토리에 넣어둔다.
- 자바코드에서 외부 글꼴 지정하도록 코딩
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),
"fonts/HandmadeTypewriter.ttf");
tv.setTypeface(face);
}
}
예외사항
- 트루타입 글꼴 가운데에도 간혹 안드로이드가 읽어들일 수 없는 글꼴이 있다. 만약 안드로이드가 읽지 못하는 글꼴을 사용하려 한다면 Exception을 띄우기보다는 그냥 'sans' 글꼴을 대체해서 사용한다.
- 글꼴을 제대로 적용한 것 같은데 계속해서 'sans' 글꼴로 나타난다면, 이는 안드로이드와 호환되지 않는 글꼴일 가능성도 있다.
- 투루타입 글꼴은 유니코드 글자 가운데 어느 정도 충분한 양을 표현하려면 파일 크기가 상당히 커진다. 따라서 너무 많은 공간을 차지할 수 있으니 꼭 필요한 글꼴만 추가해 사용하는 것이 좋다.
댓글 없음:
댓글 쓰기