Рисование массива текстов с использованием StaticLayout внутри onDraw
У меня есть этот код ниже в моем собственном представлении. Я использую StaticLayout для рисования многострочного текста под кружком.
Но назначение объекта внутри onDraw не является предпочтительным.
Как я могу решить эту проблему? Нужно ли хранить объект StaticLayout внутри объекта BoxLocation и использовать его?
@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();
}