外字(第3、第4水準)が画面上に表示されない

2,429 views
Skip to first unread message

ryoryo

unread,
Sep 8, 2010, 7:22:03 AM9/8/10
to 日本Androidの会
はじめまして。ryoryoと申します。
初投稿させて頂きます。よろしくお願い致します。

android開発初心者ですので、説明足らずな点やわかりずらいところもあるかと思いますが、
何卒よろしくお願い致します。

それでは早速、本題なんですが、現在辞書アプリ的なものを作っているのですが、
検索結果を表示した際、外字(第3、第4水準)が正しく表示されません。
外字部分が全て「□」で表示されてしまいます。

※すべての文字を確認したわけではありませんが、「縦書きビューワ」というアプリでは第3、第4水準の
 文字も表示出来ているようなので、実現は可能と思っているのですが、方法がわからず困っております。

アプリの動作としましては、入力した検索キーワードを元に、ローカルに持っているDB(SQLite)にある
語句を探しに行き、ヒットした語句をTextViewに表示するといった動作です。

一部ソースを抜粋し、簡略化したものを記載します。
-------------------------------------------------------------------------------------------------------
private void viewData()
{
TextView tHoge = (TextView) findViewById(R.id.tHoge);
Typeface face = Typeface.createFromFile("/sdcard/fonts/ipam.otf");
String tHogeValue = "足長蠭";

tHoge.setTypeface(face);
tHoge.setText(tHogeValue);
}
-------------------------------------------------------------------------------------------------------
※本来はtHogeValueに入る文字はDBから取得した語句となります。
※開発中にたまたま「足長蠭(あしながばち)」という単語がヒットし、外字が表示されていないの
 を発見しました。

ちなみにフォントが関係しているかと考え、IPA明朝フォントをsdcardにダウンロード、展開をし、
IPA明朝のフォントを使用してみましたがだめでした。
フォントをIPA明朝にした場合、外字部分は「□」ではなく「 」(空)でした。

長々と書きましたが、ようは画面上に第3、第4水準の文字もちゃんと表示させたいです。

■当方の開発環境
 開発用PCのOS:Windows 7 Enterprise
 開発プラットフォーム:Eclipse 3.5.2
 アプリ実行環境:Xperia(実機), Xperia(emulator), Android Virtual Devices

何卒ご教授の程、よろしくお願い致します。

titoi2

unread,
Sep 8, 2010, 9:44:28 AM9/8/10
to android-g...@googlegroups.com
こんばんは、ちいといつ と申します。

ryoryoさんのソースの「ばち」の部分、U+882D は JIS X 0212 5B7A の文字であって、JIS X 0213 の第三水準でも第四水準でもないようです。なので、残念ながら JIS X 0213 準拠の IPA フォントには含まれていないみたいです。 Windows XP のメイリオでは表示されますね。

ちなみに、青空文庫の外字のうち第三水準第四水準にあるものは外字注記として面区点コードで入力されています。


2010年9月8日20:22 ryoryo <ryo...@livedoor.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


ryoryo

unread,
Sep 8, 2010, 9:24:16 PM9/8/10
to 日本Androidの会
ryoryoです。

ちいといつさんご返信ありがとうございます。

なるほど、IPAには含まれていない字なんですね。。。。

ご教授頂きましたWindowsXPのメイリオですが、早速エミュレータに入れ、
アプリを起動してみたところ、「ばち」が正しく表示されましたっ!
ありがとうございます!

ただフォントのファイルサイズが7.5MBくらいあるので、もう少しサイズが小さい
(IPAの4.4MBくらい)フォントで実現出来ればと思っておりますが、無謀でしょうか?
(無謀というかたぶん無理ですかね。。。使える文字が増える分、サイズも増えてしまいますよね。。。)

もし、上記を満たすような素敵なフォントをご存知でしたら、申し訳ありませんがご教授頂ければと
思います。

それでは、よろしくお願い致します。

ryoryo

unread,
Sep 10, 2010, 12:08:21 AM9/10/10
to 日本Androidの会
ryoryoです。

フォントを探してみた結果、梅フォントを採用することにしました。

ファイルサイズが約5MB、ライセンスもフリーで当方の表示したい漢字も
表示できましたのでこれに決めました。

いろいろとご教授頂きありがとうございました。
ちいといつさん、改めて御礼申し上げます。

また、質問させて頂くかも知れませんが、よろしくお願い致します。

rg 0020

unread,
Sep 10, 2010, 1:50:21 AM9/10/10
to android-g...@googlegroups.com
@ozeroと申します。

容量について、思いつきで申し訳ありませんが、TTEditあたりで梅フォントの
外字以外を削ったフォントファイルを作り、バンドルしておけば
外字はバンドルの梅フォント改変、それ以外はDroidSansJapaneseおよび
Fallbackで表示とやってくれないだろうか、どうだろうかと気になるところです。

Reply all
Reply to author
Forward
Message has been deleted
0 new messages