Как использовать гарнитуру по умолчанию, когда не удалось загрузить пользовательскую гарнитуру? - PullRequest
0 голосов
/ 31 октября 2011

Я пытаюсь загрузить пользовательский шрифт.

Работает нормально в новой модели телефона, но при загрузке пользовательской гарнитуры выдает ошибку в старой модели.

Я думаю, что старая модель телефона не поддерживает пользовательскую гарнитуру. Я думаю, мне нужно сделать его альтернативным шрифтом по умолчанию.

Итак, я попробовал «попробуй и поймай» альтернативный путь.

Но он все равно совершает ту же ошибку.

Кто-нибудь увидит мой код и предоставит какие-либо предложения? спасибо.

face = Typeface.createFromAsset(getAssets(), "fonts/letter.ttf");
    face2 = Typeface.SANS_SERIF;

    try{
    noteET.setTypeface(face);
    }catch(Exception e){
        noteET.setTypeface(face2);
    }

В Note.java он имеет пользовательский 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 Ответ

0 голосов
/ 31 октября 2011

Ваш улов не нужен.Когда пользовательский ttf не может быть загружен, и вы поймали эту ошибку, чтобы ваше приложение не зависало, автоматически выбирается гарнитура по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...