2012년 5월 5일 토요일

안드로이드 글꼴 적용 방법 1


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' 글꼴로 나타난다면, 이는 안드로이드와 호환되지 않는 글꼴일 가능성도 있다.
          - 투루타입 글꼴은 유니코드 글자 가운데 어느 정도 충분한 양을 표현하려면 파일 크기가 상당히 커진다. 따라서 너무 많은 공간을 차지할 수 있으니 꼭 필요한 글꼴만 추가해 사용하는 것이 좋다.

댓글 없음:

댓글 쓰기