Можно ли сделать недействительным только текст, но не фоновое изображение в пользовательском представлении на 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) или аннулировать (слева, сверху, справа, снизу)

Вот ссылка для более подробной информации

Другие вопросы по тегам