私はカスタム書体を読み込もうとしています。カスタム書体の読み込みに失敗した場合のデフォルト書体の使い方は?
新しいモデルの電話機では問題なく動作していますが、カスタムタイプフェイスブックを読み込むときに古いモデルでエラーが発生します。
旧型携帯電話ではカスタム書体がサポートされていないと思います。私はそれをデフォルトの書体で代替する必要があると思います。
私は代わりの方法で "試してキャッチ"しようとしました。
しかし、それでも同じエラーが発生します。
誰かが自分のコードを見て、提案してもらえますか? ありがとうございます。 Note.java
で
face = Typeface.createFromAsset(getAssets(), "fonts/letter.ttf");
face2 = Typeface.SANS_SERIF;
try{
noteET.setTypeface(face);
}catch(Exception e){
noteET.setTypeface(face2);
}
、それがbackgoundメモ帳の行を含むカスタムEditText
を持っています。 カスタムフォントはそれをサポートしていないので、描画線の行の高さを計算することはできません。
エラーメッセージは以下です:
**10-31 07:09:05.275: ERROR/AndroidRuntime(5159): FATAL EXCEPTION: main
**10-31 07:09:05.275: ERROR/AndroidRuntime(5159): java.lang.ArithmeticException: divide by zero**
**10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at myapp.secretdiary.second.Note$EditOnList.onDraw(Note.java:195)**
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.View.draw(View.java:6740)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.View.draw(View.java:6743)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.View.draw(View.java:6743)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.view.View.draw(View.java:6743)
10-31 07:09:05.275: ERROR/AndroidRuntime(5159): at android.widget.FrameLayout.draw(FrameLayout.java:352)
*********more************
Note.Java:195
ラインソースは以下の通りです
public static class EditOnList extends EditText{ //Noepad Line Drawing
public EditOnList(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(Color.BLUE);
int count = getLineCount();
int height = this.getHeight();
int line_height = this.getLineHeight();
int size = height/line_height+1; // line 195
if (count<size)count=size;
int y = 2;
for(int i=1; i<count; i++){
y += line_height;
canvas.drawLine(0+60, y, this.getRight()-60, y, p);
}
}
} // EditOnList
あなたは同じエラーが2回起こると言いますが、エラーは何も言いません。再試行する。 – bos
エラーを記載してください。 – Debarati
申し訳ありませんが、私はエラーログとコードを追加します.. – beginners