アプリで外部フォントを使用したい。 fonts
を使用して新しいAssetManager
を追加しようとしましたが、うまくいきませんでした。以下は私のコードです:
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
しかし、テキストを表示していません...
これで私を助けてください。
知る限り、AndroidはOpenTypeをサポートしていません。代わりにTrueTypeフォントを使用してください。
PDATE: OpenTypeが少なくともある程度サポートされるようになりました。元々サポートされていなかったので、アプリがサポートするAndroidのどのバージョンでもフォントを徹底的にテストしたいと思うでしょう。
フォントに簡単にアクセスするには、コードを後でロードできるようにアプリケーションにバンドルする必要があります。これを行うには、アセットにFontsフォルダーを直接作成します
これは.xmlかもしれません
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView
Android:id="@+id/DefaultFontText"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:textSize="30sp"
Android:text="Here is some text." />
<TextView
Android:id="@+id/CustomFontText"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="30sp"
Android:text="Here is some text.">
</TextView>
.Javaクラスで次のコードを記述します
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
AndroidはOTFをサポートしています(どのSDKバージョンからはわかりませんが、1.6で確実に動作します)、私はしばらくの間タイプライターOTFフォントを使用していましたが、レンダリングは最終的に使用したTTFバージョンほど正確ではありません(オンラインフォントコンバーター経由)。ベースラインはいたるところにあり(一部の文字は他の文字よりも完全に2ピクセル高い)、HTC WildfireなどのLDPI電話では、ピクセルが大きいため問題が大幅に拡大しています。
Androidはotfとttfの両方の形式をサポートしているので、両方を体験しました。
tv3 = (TextView)findViewById(R.id.tv1);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
tv3.setTypeface(typeFace);
これは英語と現地語の両方で使用したステップです
ブースOTFおよびTTFフォントをサポートするFontinatorを使用します
これは、カスタムフォントを使用することを簡単にするAndroidライブラリです。
私は同じ問題を抱えていました。フォントはAndroidでも動作しませんでしたが、動作する必要がありました。フォントエディタを使用して、フォントの文字をAndroid-src-のFontSamplerサンプルに付属するフォントにコピーしました。 2_1。完全に機能しました。
私の方法は知的財産の観点から疑わしいと認めますが、すべての文字が置き換えられ、古いフォントへの参照もすべて置き換えられたため、実際には元のフォントを使用しませんでした。 2つのフォントの定義方法を「見て」みましたが、すべてのフォント変数を一致させることもできませんでした。そのため、nedでは、元のフォントのスケルトンを新しいフォントのテンプレートとして使用しました。