Можно ли сделать недействительным только текст, но не фоновое изображение в пользовательском представлении на Android?
Мой CustomView
рисует несколько полигонов и тому title text
расположен в центре зрения. Когда приложение работает, мне нужно часто менять текст заголовка этих представлений. Конечно, я могу сделать недействительным после установки нового текста, чтобы приложение перерисовывало все - полигоны, цвета и, наконец, новый текст - но мне просто интересно, есть ли хитрый способ, который только делает недействительным текст заголовка, оставляя весь фон polygons
нетронутым. Текущий код выглядит так:
public CustomView extends View {
private Path mPolygon1;
private Path mPolygon2;
// .. more polygons
private String mTitleText;
@Override
protected void onDraw(Canvas canvas) {
// Draws all images
canvas.drawPath(mPolygon1, mPaint);
canvas.drawPath(mPolygon2, mPaint);
// ... more polygon drawing
canvas.drawText(mTitleText, 0, mTitleText.length(), mTextPaint);
}
public void setTitle(String title) {
mTitleText = title;
invalidate(); // more clever way????
}
}
1 ответ
Решение
Вы можете использовать аннулировать (Rect) или аннулировать (слева, сверху, справа, снизу)
Вот ссылка для более подробной информации