Androidã§ç¸¦æ¸ããå®ç¾ãã
androidã®TextViewã¯ç¸¦æ¸ãã«ã¯å¯¾å¿ãã¦ãã¾ããã
縦æ¸ããå®ç¾ããããã«ã¯èªåã§å®è£
ããããããã¾ããã
縦æ¸ãã«ã¤ãã¦ãã£ã±ãç¥ããªãç¶æ
ããå®è£
ãã¾ããã
twitterã§ã®ããã¨ã
Togetter - ãAndroid縦æ¸ãã http://togetter.com/li/92001
誤ã£ã¦ããç®æãããã°ææãé¡ããã¾ãï¼
宿ã¯ãããªæãã§ãã
åèã«ãããµã¤ã
åä½ - Wikipedia http://ja.wikipedia.org/wiki/%E5%AD%97%E4%BD%93
ã°ãªãããã©ã³ãï¼æååãã°ãªããããããéã¾ã£ã¦ãã©ã³ãã¨ããåä½ã«ãªã
ç¦åå¦ç - Wikipedia http://ja.wikipedia.org/wiki/%E7%A6%81%E5%89%87%E5%87%A6%E7%90%86
è¡ã®æåã«ãããããããªã©ã®æåãé
ç½®ãããå ´åãåè¡ã®æå¾ã«è¡¨ç¤ºããã¹ãã¨ããå¦ç
*1
ãã¤ããã¼ã·ã§ã³ã¨ã¯ãhyphenationã - æå³/解説/説æ/å®ç¾© ï¼ ITç¨èªè¾å ¸ http://e-words.jp/w/E3838FE382A4E38395E3838DE383BCE382B7E383A7E383B3.html
è±èªçç¦åå¦çã¿ãããªãã®
è¡ãã¾ããã§è±åèªãæç»ããå ´åãã¤ãã³ã使ã£ã¦ç¹ã
*2
ã«ã - Wikipedia http://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%93
ãµãããªã«ä½¿ãã«ã
*3
[SOLVED] Android: Using Custom Fonts « RussenReaktor's Weblog http://russenreaktor.wordpress.com/2010/04/29/solved-android-using-custom-fonts/
èªåã§ç¨æãããã©ã³ãã使ãä¾
assetsã«ã¯1MBã¾ã§ããå
¥ãã¾ããããã®ä¾ã§ã¯assetsã«ãã©ã³ããå
¥ãã¦ãã¾ãããããã¯è±åãã©ã³ãã®ã¿ã ããããã§ãããã¨ã§ãã
æ¥æ¬èªã®ãã©ã³ããå
¥ã£ã¦ãã¦ãã¨1MBãªãã¦ä½è£ã§è¶
ãã¡ããã®ã§å¥éSDã«ã¼ãã«å
¥ãã¦ãããå¿
è¦ãããã¾ãã
ä»ã®Android縦æ¸ãã¢ããªã§ã¯å¤§æµã¢ããªã¤ã³ã¹ãã¼ã«å¾ã«ãã¦ã³ãã¼ãããä»çµã¿ã«ãªã£ã¦ãã¾ãã
ããã¹ãã®æç»(FontMetrics) - Android Wiki* http://wikiwiki.jp/android/?%A5%C6%A5%AD%A5%B9%A5%C8%A4%CE%C9%C1%B2%E8(FontMetrics)
FontMetrixã«ã¤ãã¦
Canvas.drawText()ã§ã¯baseLineãåºæºã«æããã¾ãã
ç°¡æç¦åå ¥ã£ã¦ãã½ã¼ã¹ - inuchin104ãiPhoneã¨æ ¼éããã¡ã¢ http://d.hatena.ne.jp/inuchin104/20110121
ã¡ããã¨èªãã¦ãã¾ãããã
[twitter:@inuchin] ããã®ä½ã£ãDirectXã使ã£ãiPhoneç¨ç¸¦æ¸ãã³ã¼ããããã§ãã
ã«ãã¨ç°¡æç¦åå¦çãã¤ãã¦ããããã§ãã
Typeface | Android Developers http://developer.android.com/reference/android/graphics/Typeface.html
ãã©ã³ãã®ã¯ã©ã¹ã§ãã
Paint | Android Developers http://developer.android.com/reference/android/graphics/Paint.html
getFontããå§ã¾ãã¡ã½ãããè¦ã¦ããã¨ããã§ãã
åºæ¬çãªä½ã
ç¬èªViewãä½ããonDrawã§Canvas#drawText()ã使ã£ã¦æåã縦ã«ä¸¦ã¹ã¦ããã¾ãã
ã²ãããªããæ¼¢åãªã©ã®ã ãããã®æåã®è¡¨ç¤ºã¯å¤§ä¸å¤«ã§ãããæ¨ªæ¸ãç¨ãã©ã³ããªã®ã§ãã¼ããããããããããªã©ã使ã£ãå ´å表示ãçã£ãæ§ã«è¦ãã¾ããç¹å¥ãªå°æåãè¨å·ãªã©ã«ã¯å¥éè¨å®ãè¨ãã¦ä½ç½®ã調æ´ããããã«ãã¾ãã
横ãã©ã³ãåé¡ã®è§£æ±ºæ³ã¯ç¸¦æ¸ããã¥ã¼ã¯ãä½ããã¦ãã[twitter:@2SC1815J] ããã«ããæè¦é ãã¾ããã
å®è£
ç¬èªãã©ã³ãã®ãã¼ã
Typeface typeface = Typeface.createFromFile(FONT_PATH); Paintm paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setTextSize(FONT_SIZE); paint.setColor(Color.BLACK); paint.setTypeface(typeface); canvas.drawText("ããã«ã¡ã¯ï¼", x, y, paint);
ãã®ã³ã¼ãã使ãã°ç¬èªãã©ã³ãã使ã£ãæååã表示ããäºãã§ãã¾ãã
ãã©ã³ãã¯IPAææã使ç¨ãã¾ããã
IPAãã©ã³ãã®ãã¦ã³ãã¼ã || OSS iPedia http://ossipedia.ipa.go.jp/ipafont/index.html
ããã«ã¡ã¯ã®æåã¯æ¨ªã«è¡¨ç¤ºããã¦ãã¾ããã縦æ¸ãã«ããããã«ï¼æåãã¤æç»ãã¾ãã
æåãµã¤ãº
ããã¹ãã縦ã«ä¸¦ã¹ãããã«ã¯ï¼æåã®ãµã¤ãºãåå¾ããå¿
è¦ãããã¾ãã
æåãµã¤ãºã¯Paint#getFontSpacing()ã§ãã¯ã»ã«ãµã¤ãºãåå¾ããäºãã§ãã¾ãã
ããã使ãã°åºå®ãããã§è¡¨ç¤ºããäºãå¯è½ã§ãã
è¡éãï¼æååãæåã®è¡ãï¼æåè½ã¨ãè¨å®ã§èµ°ãã¡ãã¹ã®åé ã表示ãã¦ã¿ã¾ããã
ãã®ç¶æ
ã§ããã£ããæ§ã«ãªã£ã¦ã¾ãã
ããããããããããã£ãã®ä½ç½®ãããããã§ãã
横ç¨ãã©ã³ãã®ãããä½ç½®ããããã表示ããã¾ãã
æåä½ç½®ã調æ´ãã
æåä½ç½®èª¿æ´ã®å¯¾è±¡ã¯ã ãããæãã¤ããã®ã§
- è¨å·
- ã²ãããªå°æå
- ã«ã¿ã«ãå°æå
- ã¢ã«ãã¡ãããåè§å¤§æå
- ã¢ã«ãã¡ãããåè§å°æå
- ã¢ã«ãã¡ãããå ¨è§å¤§æå
- ã¢ã«ãã¡ãããå ¨è§å°æå
ãªã©ãããã¾ãã
ã²ãããªã»ã«ã¿ã«ãå°æåã«ã¤ãã¦ã¯ä½ç½®ã®èª¿æ´ã§ããã§ããã
ã¢ã«ãã¡ãããã»è¨å·ã«ã¤ãã¦ã¯90度å転ããå¿
è¦ãããã¾ãã
管çãæ¥½ã«ãªãããã«è¨å®ç¨ã®ã¯ã©ã¹ãä½ã£ã¦ããã¦excelã§çæã§ããããã«ãã¾ãã
public class CharSetting { /** * æå */ public final String charcter; /** * å転è§åº¦ */ public final float angle; /** * xã®å·®å * Paint#getFontSpacing() * xãè¶³ããã * -0.5fãè¨å®ãããå ´åã1/2æååå·¦ã«ããã */ public final float x; /** * xã®å·®å * Paint#getFontSpacing() * yãè¶³ããã * -0.5fãè¨å®ãããå ´åã1/2æååä¸ã«ããã */ public final float y; public CharSetting(String charcter, float angle, float x, float y) { super(); this.charcter = charcter; this.angle = angle; this.x = x; this.y = y; } public static final CharSetting[] settings = { new CharSettings("ã", 0.0f, 0.7f, -0.6f), new CharSettings("ã", 0.0f, 0.7f, -0.6f), new CharSettings("ã", 90.0f, -1.0f, -0.3f), new CharSettings("ã", 90.0f, -1.0f, 0.0f), new CharSettings("ã", 0.0f, 0.1f, -0.1f), new CharSettings("ã", 0.0f, 0.1f, -0.1f), new CharSettings("ã ", 0.0f, 0.1f, -0.1f), new CharSettings("ã", 0.0f, 0.1f, -0.1f), new CharSettings("ã", 0.0f, 0.1f, -0.1f), new CharSettings("ã£", 0.0f, 0.1f, -0.1f), // ç¥ new CharSettings("ï¼¶", 90.0f, 0.0f, -0.1f), new CharSettings("ï¼·", 90.0f, 0.0f, -0.1f), new CharSettings("X", 90.0f, 0.0f, -0.1f), new CharSettings("ï¼¹", 90.0f, 0.0f, -0.1f), new CharSettings("Z", 90.0f, 0.0f, -0.1f), new CharSettings("ï¼", 90.0f, 0.0f, -0.1f), new CharSettings("ï¼", 90.0f, 0.0f, -0.1f), new CharSettings("ï¼", 90.0f, 0.0f, -0.1f), new CharSettings("", 90.0f, 0.0f, -0.1f), new CharSettings(":", 90.0f, 0.0f, -0.1f), new CharSettings(";", 90.0f, 0.0f, -0.1f), new CharSettings("/", 90.0f, 0.0f, -0.1f), new CharSettings(".", 90.0f, 0.0f, -0.1f), }; public static CharSetting getSetting(String character) { for (int i = 0; i < settings.length; i++) { if (settings[i].charcter.equals(character)) { return settings[i]; } } return null; } }
æåãæç»ããåã«CharSetting#getSetting()ãå¼ã³ãè¨å®ããã£ãããã®è¨å®éãã«æç»ãã¾ãã
nullã帰ã£ã¦ããå ´åãå転ãä½ç½®èª¿æ´ãããã«æç»ãã¾ãã
ã³ã¼ãã§è¡¨ãã¨ãããªæã
CharSettings setting = CharSettings.getSetting(s); if (setting == null) { canvas.drawText(s, x, y, paint); } else { canvas.save(); canvas.rotate(setting.angle, x, y); canvas.drawText(s, x + fontSpacing * setting.x, y + fontSpacing * setting.y, paint); canvas.restore(); }
ã¾ããCharSettingsãããããçæãã¦ããã¨ããã¯excelã§ç®¡çãã¦çæã§ããããã«ãã¾ããã
CharSettings使ã·ã¼ã https://spreadsheets.google.com/ccc?key=0AmA_8rkF2TwodHIyUWpMdldicVhhMGxZWVItNmQ1UkE&hl=ja&authkey=CK_XjqsK
ããã使ã£ã¦æç»ããã®ããã
ããã°ã£ã¦èª¿æ´ããã®ã§ããã£ã½ãä½ç½®ã«ãããããã£ããæç»ããã¾ããã
android縦æ¸ã宿
ãã¨ã¯è¡¨ç¤ºä½ç½®ãããããæåã®è¨å®ãéæè¿½å ãã¦ãã£ããã
è¡æ«ã«ãããããããªã©ãããããç¦åå¦çãããã
ã«ãã®è¡¨ç¤ºãå®è£
ãããããã°ããã¨æãã¾ãã
ç¹ã«ã«ãã¯ãã¼ã¿ãã©ã®ããã«ä¿æããããã¾ããã¼ã¹ã®ããæ¹ãèããªãã¨ãããªãã®ã§å¤§å¤ããããã¾ããã