Я реализую пользовательский View
, и мне нужно нарисовать в нем какой-то текст. Текст должен помещаться в рамку (поэтому я должен разбить его и подогнать). Из-за этого я подумал, что смогу использовать TextView
и нарисовать его внутри своего пользовательского View
. Вот что я попробовал:
canvas.drawRoundRect(rect, eventRadius, eventRadius, eventBg);
canvas.save();
canvas.clipRect(rect);
TextView tv = new TextView(getContext());
tv.setText(e.getSummary());
tv.setTextColor(Color.BLACK);
tv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
tv.layout(0, 0, (int) (rect.right - rect.left), (int) (rect.bottom - rect.top));
tv.draw(canvas);
canvas.restore();
Однако ничего не появляется. Я знаю, rect
в порядке, потому что первый drawRoundRect
работает нормально. Что мне не хватает? Есть ли способ лучше? Может быть, я должен вместо этого расширить ViewGroup
? Я не уверен, как это будет работать.