Рисование массива текстов с помощью 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
- Ничего не происходит."
И боюсь, это нам ни о чем не говорит. Если у вас возникли проблемы с каким-то кодом, то, пожалуйста, отредактируйте свой вопрос, покажите код и предоставьте полную информацию.