Yesudass Moses Ответов: 0

Рисование массива текстов с помощью staticlayout внутри ondraw


У меня есть этот код ниже внутри моего пользовательского представления. Я использую StaticLayout рисовать многострочный текст в соответствии новичек.

Но назначение объекта внутри onDraw не является предпочтительным.

Как я могу решить эту проблему?

@Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        for(MapBoxLocations mbl: BoxLocations) {
            int color = mbl.getColor();
            int x = mbl.getCx();
            int y = mbl.getCy();
            String title = mbl.getTitle();
            paint.setColor(color);
            canvas.drawCircle(x, y, 60, paint);
            textPaint.setTextSize(24);
            canvas.save();
            canvas.translate(x - 60,y + 70);
            StaticLayout dl = new StaticLayout("" + title, textPaint, 120,
                    Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false);
            dl.draw(canvas);
            canvas.restore();

        }


Что я уже пробовал:

Могу ли я хранить объект StaticLayout внутри объекта BoxLocation и использовать его ?

Richard MacCutchan

Что происходит, когда вы пытаетесь?

Yesudass Moses

Ничего не происходит. Но инициализировать объект внутри метода onDraw-плохая идея.

Richard MacCutchan

- Ничего не происходит."
И боюсь, это нам ни о чем не говорит. Если у вас возникли проблемы с каким-то кодом, то, пожалуйста, отредактируйте свой вопрос, покажите код и предоставьте полную информацию.

0 Ответов