私はassetsフォルダ/assets/fonts/7led.ttfにカスタムフォントを設定し、テキストビューのフォントを初期化しました。
// LED font used in Dimmer display
Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/7led.ttf");
TextView tv = (TextView) findViewById(R.id.DimmerView);
tv.setTypeface(tf);
私はテキストをデフォルト "100"に設定しています。
<TextView
android:id="@+id/DimmerView"
android:layout_width="169dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="700dp"
android:background="@color/text_color"
android:text="100"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/background_color"
android:textSize="100dp" />
フォントは正しく表示されますが、テキストを変更しようとするとクラッシュします。
TextView.setText("101");
私はこのトピックへの多くの答えを読んだが、まだクラッシュを解決することはできません。私が見ている多くのエラーの1つは、キャッチされない例外で終了しています。
ログキャット 09-09 14:05:47.851:W / dalvikvm(3729):threadid = 1:キャッチされていない例外でスレッドが終了する(グループ= 0x414422a0)
私はクラッシュを解決しました。
Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/digital_counter_7.ttf");
final TextView tv = (TextView) findViewById(R.id.DimmerView); // for display the received data from the Arduino
tv.setText("101");
tv.setTypeface(tf);
この行はテキストを変更することができます
tv.setText("102");
回答:
回答№1は0私はあなたが少し間違ってフォルダを呼び出すようにしたと思う:
.ttfファイルを/assets/folder/7led.ttfに置いた場合は、
Typeface tf = Typeface.createFromAsset(this.getAssets(), "folder/7led.ttf");
そうではない
Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/7led.ttf");
回答№2の場合は0
私のエラーは単に "ttf"の代わりに "tff"という誤植でした。自分自身を頭痛から守るためにもそのことを確認してください。