2011-10-31 7 views
-1

私はカスタム書体を読み込もうとしています。カスタム書体の読み込みに失敗した場合のデフォルト書体の使い方は?

新しいモデルの電話機では問題なく動作していますが、カスタムタイプフェイスブックを読み込むときに古いモデルでエラーが発生します。

旧型携帯電話ではカスタム書体がサポートされていないと思います。私はそれをデフォルトの書体で代替する必要があると思います。

私は代わりの方法で "試してキャッチ"しようとしました。

しかし、それでも同じエラーが発生します。

誰かが自分のコードを見て、提案してもらえますか? ありがとうございます。 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 
+1

あなたは同じエラーが2回起こると言いますが、エラーは何も言いません。再試行する。 – bos

+0

エラーを記載してください。 – Debarati

+0

申し訳ありませんが、私はエラーログとコードを追加します.. – beginners

答えて

0

あなたの漁獲量は必要ありません。 カスタムttfをロードできず、このエラーが発生してアプリケーションがクラッシュしないようにすると、デフォルトのタイプフェイスが自動的に選択されます。

+0

お返事ありがとうございます。それはtry catchの問題ではないことを意味します。私はエラーの詳細を調べる必要があります – beginners

関連する問題