 |
|
|  |
¾Èµå·ÎÀÌµå ¾Û Ä¿½ºÅÒ ±Û²Ã ³Ö±â |
|
|
 |
10³â Àü |
¾Èµå·ÎÀÌµå ¾Û Ä¿½ºÅÒ ±Û²Ã ³Ö±â
Àú´Â ¾Èµå·ÎÀ̵åÀÇ ±âº» ±Û²Ã Droid Sans°¡ ±×´ÙÁö ¸ø»ý°å´Ù°í »ý°¢ÇÏÁö´Â ¾ÊÁö¸¸ ±Û²ÃÀº ¾ÛÀÇ ÀÎ»ó¿¡ »ó´çÈ÷ Å« ¿µÇâÀÌ ÀÖ´Â °Í °°½À´Ï´Ù. ƯÈ÷ ¹öÆ° µî À̹ÌÁö·Î ¸¸µé¾î ³õÀº UI¿Í µ¿ÀûÀ¸·Î º¯ÇÏ´Â ÅؽºÆ®ÀÇ ±Û²ÃÀÌ ´Ù¸£¸é ¸¹ÀÌ ¾î»öÇÕ´Ï´Ù. ±×·¡¼ ÀÌ ±Û¿¡¼´Â ¾Û ¼öÁØ¿¡¼ ÀüüÀûÀÎ ±Û²ÃÀ» ¹Ù²Ù´Â ¹æ¹ýÀ» ¾Ë¾Æº¸°Ú½À´Ï´Ù.
Áغñ
Àç¹èÆ÷°¡ ÀÚÀ¯·Î¿î ±Û²ÃÀ» ÁغñÇÕ´Ï´Ù. »ç½Ç ±×·± ÇÑ±Û ±Û²ÃÀº ³ª´®±Û²ÃÀÌ °ÅÀÇ À¯ÀÏÇÏÁÒ. ¿µ¹® ±Û²ÃÀº ¼±ÅÃÀÇ ÆøÀÌ ÈξÀ ³Ð½À´Ï´Ù.
Âü°í·Î TrueType ±Û²Ãº¸´Ù OpenType ±Û²ÃÀÇ ¿ë·®ÀÌ ÈξÀ ÀûÀº °Í °°À¸´Ï, otf ÆÄÀÏÀ» »ç¿ëÇÏ½Ã¸é ¾Û ¿ë·®ÀÌ ¹«½ÄÇÏ°Ô Ä¿Áö´Â °ÍÀ» ¸·À» ¼ö ÀÖ½À´Ï´Ù. ¿äÁò ³ª¿À´Â ±âÁ¾Àº ±¦ÂúÀºµ¥, Àúó·³ ³»Àå ¸Þ¸ð¸®°¡ ÀûÀº µðÀÚÀÌ¾î °°Àº ÆùÀ» ¾²½Ã´Â ºÐµé¿¡°Ô´Â ¿ë·®ÀÌ Å©¸é Á» Ä¡¸íÀûÀ̰ŵç¿ä.
񃧯
±Û²Ã ÆÄÀÏÀ» assets/ µð·ºÅ丮¿¡ ³Ö½À´Ï´Ù. ±×¸®°í ±Û²ÃÀ» ºÒ·¯¿Â µÚ, ±Û²ÃÀ» ÁöÁ¤Çϱ⠿øÇÏ´Â ºä¿¡ setTypeface ¸Þ¼Òµå¸¦ È£ÃâÇÏ¸é µË´Ï´Ù. ÄÚµå·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
Typeface typeface = Typeface.createFromAsset(getAssets(), "font.ttf");
TextView textView = (TextView) findViewById(R.id.textView);
textView.setTypeface(typeface);
// ±½Àº ±Û²ÃÀÌ µû·Î ÀÖÀ» ¶§ Ãß°¡·Î ÇØÁà¾ß ÇÏ´Â ºÎºÐ
Typeface boldTypeface = /* ... À§¿Í °°Àº ¹æ¹ý ... */;
textView.setTypeface(boldTypeface, Typeface.BOLD);
¿©±â±îÁö¸¸ º¸¸é »ó´çÈ÷ ½¬¿öº¸ÀÌÁö¸¸ ÇÑ°¡Áö ¹®Á¦°¡ ÀÖ½À´Ï´Ù.
¿ë·®ÀÌ Å« ±Û²Ã Áý¾î³Ö±â
¹Ù·Î, assets µð·ºÅ丮¿¡ ³ÖÀº ±Û²Ã ÆÄÀÏÀÇ ¿ë·®ÀÌ Å¬ °æ¿ì Àоî¿ÀÁö ¸øÇÏ´Â ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ÇÑ±Û ±Û²ÃÀº ¿ë·®ÀÌ Å©±â ¶§¹®¿¡ ÀϹÝÀûÀÎ ¹æ¹ýÀ¸·Î´Â Àоî¿Ã ¼ö°¡ ¾ø½À´Ï´Ù. °ú¿¬ ¾î¶»°Ô ÇØ¾ß Àоî¿Ã ¼ö ÀÖÀ»±î¿ä?
ÇÑÂü ±¸±Û¸µÇÑ ³¡¿¡ ÂÉ°³¼ ³Ö°í ÇÕÄ¡´Â ¹æ¹ýÀ» ¹ß°ßÇßÁö¸¸ ¹º°¡ ±ò²ûÇÏÁö°¡ ¾Ê¾Æ¼, ±Ùº»ÀûÀÎ ¹®Á¦(¿Ö ¿ë·®ÀÌ Å« assetÀº Àоî¿ÀÁö ¸øÇÒ±î)¸¦ Á¶»çÇغýÀ´Ï´Ù.
¾Ë°í º¸´Ï apk ÆÄÀÏÀ» ¸¸µå´Â °úÁ¤¿¡¼ ƯÁ¤ È®ÀåÀÚ(jpg, png, mp3 µî)°¡ ¾Æ´Ñ ÆÄÀÏÀº ¾ÐÃàÀÌ µÇ¸ç, ¾ÐÃàÀÌ µÇ°í ³ª¸é ¾ÐÃà ÇØÁ¦ ½Ã ¿ë·®ÀÌ 1MB¸¦ ³Ñ´Â °æ¿ì ·±Å¸ÀÓ¿¡ »ç¿ëÇÒ ¼ö ¾ø¾îÁø´Ù°í ÇÕ´Ï´Ù. (Ãâó, ÁøÀúºê·¹µåºÎÅÍ´Â ÀÌ Á¦ÇÑÀÌ »ç¶óÁ³½À´Ï´Ù. ¾Æ¸¶µµ ÃÖ¼Ò ¿ä±¸ ¸Þ¸ð¸®°¡ ´Ã¾î³µ±â ¶§¹®À¸·Î º¸ÀÔ´Ï´Ù.)
±×·¡¼ °á·ÐÀûÀ¸·Î, ±Û²Ã ÆÄÀÏÀÇ È®ÀåÀÚ¸¦ mp3·Î ¹Ù²Ù¸é ¾ÐÃà ´ë»ó¿¡¼ Á¦¿ÜµÇ¸ç, Àоî¿Ã ¼ö ÀÖ°Ô µË´Ï´Ù! ´Ù¼Ò Ȳ´çÇÏÁö¸¸ ÀÌ ¹æ¹ýÀ» ¾²¸é 1MB Á¦ÇÑÀ» ¹þ¾î³¯ ¼ö ÀÖ½À´Ï´Ù.
·¹À̾ƿô Àüü¿¡ Àû¿ëÇϱâ
¾Õ¼ »ìÆ캻 Äڵ忡¼´Â Çѹø¿¡ ºä Çϳª¾¿ ÀÏÀÏÈ÷ ±Û²ÃÀ» Àû¿ëÇØ Áà¾ß Çߴµ¥¿ä. ±ÍÂú±âµµ ÇÒ »Ó´õ·¯ ½Ç¼öÇÒ È®·üÀÌ ³ô°í ·¹À̾ƿôÀÌ ¹Ù²ð ¶§¸¶´Ù °íÃÄ¾ß ÇÑ´Ù´Â ¹®Á¦°¡ ÀÖ½À´Ï´Ù.
±×·¯´Ï AndroidManifest.xml °°Àº °÷¿¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖÀ¸¸é ÁÁ°ÚÁö¸¸ ¾ÈŸ±õ°Ôµµ ±×·± °Ç ¾ø½À´Ï´Ù. ±×·¡¼ ÃÖ»óÀ§ ºä¸¦ ã¾Æ¼ Æ®¸®¸¦ Ÿ°í ³»·Á°¡¸é¼ ±Û²ÃÀ» Àû¿ëÇÑ´Ù´Â ¾ÆÀ̵ð¾î¸¦ »ý°¢Çس½À´Ï´Ù. ´ë·« ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.
private Typeface mTypeface;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.fontTest);
mTypeface = Typeface.createFromAsset(getAssets(), "font.ttf.mp3");
ViewGroup root = (ViewGroup) findViewById(android.R.id.content);
setGlobalFont(root);
}
void setGlobalFont(ViewGroup root) {
for (int i = 0; i < root.getChildCount(); i++) {
View child = root.getChildAt(i);
if (child instanceof TextView)
((TextView)child).setTypeface(mTypeface);
else if (child instanceof ViewGroup)
setGlobalFont((ViewGroup)child);
}
}
ÀÏ´Ü ÀüüÀûÀÎ ±¸Á¶´Â, ºä ¿©·¯ °³¸¦ ´ã°í ÀÖ´Â ViewGroup(LinearLayout µî)À» ¸¸³ª¸é Àç±ÍÀûÀ¸·Î È£ÃâÇؼ Æ®¸®¸¦ Ÿ°í ³»·Á°¡´Â °Ì´Ï´Ù. À§ÀÇ Äڵ忡¼ ÁÖÀÇÇÒ Á¡ ¸î °¡Áö¸¦ »ìÆ캸°Ú½À´Ï´Ù.
•findViewById(android.R.id.content)´Â ÃÖ»óÀ§ ºä¸¦ ã±â À§ÇÑ ÄÚµåÀÔ´Ï´Ù. ¾Èµå·ÎÀÌµå ³»ºÎ¿¡ ÀÇÁ¸Çϱ⠶§¹®¿¡ Á¶±Ý ºÒ¾ÈÇϱä ÇÏÁö¸¸, ÀÏ´Ü Àß µ¹¾Æ°¡´Ï±î ³öµÓ½Ã´Ù.
•·çÆ® ºä¸¦ ã¾Æ¼ setGlobalFont¸¦ ºÎ¸£´Â ÀÛ¾÷Àº ¹Ýµå½Ã setContentView¸¦ È£ÃâÇÑ ÈÄ¿¡ ÇØ¾ß ÇÕ´Ï´Ù.
•setGlobalFont¿¡¼´Â ÇöÀç TextViewÀÇ ±Û²Ã¸¸ ¹Ù²ãÁÖ°í Àִµ¥ TextViewÀÇ ¼ºêŬ·¡½º°¡ ¾Æ´Ñ ºäÀÇ ±Û²ÃÀ» ¹Ù²Ù½Ã·Á¸é Á÷Á¢ Ãß°¡ÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù. Âü°í·Î ButtonÀ̳ª EditText µî ´ëºÎºÐÀÇ ÅؽºÆ®¸¦ °¡Áø ºäµéÀº TextView¸¦ »ó¼ÓÇÏ°í ÀÖ½À´Ï´Ù.
¾Û Àüü¿¡ Àû¿ëÇϱâ
À§¿¡¼ ¼³¸íÇÑ ¹æ¹ýÀ» »ç¿ëÇصµ ¿©ÀüÈ÷ °¢ ¾×ƼºñƼ¸¶´Ù ±Û²Ã ÁöÁ¤ Äڵ带 ³Ö¾î¾ß ÇÕ´Ï´Ù. ¼ö°í¸¦ ´ú±â À§Çؼ º°µµÀÇ ±â¹Ý Ŭ·¡½º¸¦ Çϳª ¸¸µé¾î¼ »ç¿ëÇϸé, ¾×ƼºñƼ Ŭ·¡½º¸¶´Ù µû·Î ÁöÁ¤ÇÏÁö ¾Ê°í »ó¼Ó¸¸ Çؼ ±Û²ÃÀ» Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
public class BaseActivity extends Activity {
private static Typeface mTypeface;
@Override
public void setContentView(int layoutResID) {
super.setContentView(layoutResID);
if (BaseActivity.mTypeface == null)
BaseActivity.mTypeface = Typeface.createFromAsset(getAssets(), "font.ttf.mp3");
ViewGroup root = (ViewGroup) findViewById(android.R.id.content);
setGlobalFont(root);
}
// ¾Æ±î¶û °°Àº setGlobalFont
}
public class MainActivity extends BaseActivity { ... }
setContentView¸¦ ¿À¹ö¶óÀ̵å Çß½À´Ï´Ù. º°·Î ÁÁÀº ¹æ¹ý °°Áö´Â ¾ÊÁö¸¸ onCreate¸¦ ¿À¹ö¶óÀ̵å ÇÏ´Â °Íº¸´Ù´Â °£´ÜÇÏ´Ï ÀÌ·¸°Ô ÇÏ´Â°Ô ³´°Ú½À´Ï´Ù.
±Û²ÃÀ» ºÒÇÊ¿äÇÏ°Ô ¿©·¯¹ø ºÒ·¯¿ÀÁö ¾Êµµ·Ï Çϱâ À§ÇØ staticÀ¸·Î ¼±¾ðÇؼ ÇÊ¿äÇÒ ¶§¸¸ ºÒ·¯¿Àµµ·Ï ÇÏ¿´½À´Ï´Ù. ÃëÇâ¿¡ µû¶ó ½Ì±ÛÅÏ ÆÐÅÏÀ» Àû¿ëÇϽðųª, Application Ŭ·¡½º¸¦ ÀÌ¿ëÇϼŵµ µË´Ï´Ù.
|
|
̵̧ : 514 |
̵̧
¸ñ·Ï
|
|
|  |
|