のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

AndroidのTypeface.createFromFileでフォントが開けない。

androidでうまく、フォントが開けない。
typefaceのリターンは、うまく開けなくても、
NULLにはならないようだ。
どうやって、開けないことを確認するんだろう???

naitive_instanveが0のときは、開けていないということがわかった。

//Typeface face0 = Typeface.createFromAsset(this.getAssets(), "fonts/font.TTF"); // NG
//Typeface face0 = Typeface.createFromAsset(this.getAssets(), "fonts/font.ttf"); // NG
this.face0 = Typeface.createFromFile("/sdcard/aaa/type0.ttf");
this.face1 = Typeface.createFromFile("/sdcard/type0.ttf");
this.face2 = Typeface.create(Typeface.SERIF, Typeface.NORMAL);

assetsフォルダのすぐ下にしたところ、開けるようになった。
Typeface face0 = Typeface.createFromAsset(this.getAssets(),"font.ttf");

しかし、ファイルが大きいようだ。
シュミレーター2.0.1でやると

DEBUG/asset(4368): Data exceeds UNCOMPRESS_DATA_MAX (3396152 vs 1048576)

のエラーメッセージが出ていた。
Xperiaだと、なにもログにでない。)

この2パターンは、Xperiaでも開けた。
File file = Environment.getExternalStorageDirectory();
String filename = Environment.getExternalStorageDirectory() + "/type.ttf";
this.typeface0 = Typeface.createFromFile(filename);

String filename1 = "/sdcard/type.ttf";
this.typeface1 = Typeface.createFromFile(filename1);

this.typeface2 = Typeface.createFromFile("/sdcard/type.ttf");

あれ3パターン目も開けるようになった。
type0.ttfをtype.ttfにしたからかな?