Mon CustomView
dessine des polygones et le title text
est situé au centre d'une vue. Comme l'application s'exécute, j'ai besoin de changer le texte du titre de ces vues fréquemment. Bien sûr, je peux invalider après avoir défini un nouveau texte afin que l'application puisse tout redessiner - polygones, couleurs, et enfin le nouveau texte - mais je me demande simplement s'il y a une manière intelligente qui invalide seulement le texte du titre polygons
intacte. Le code actuel ressemble à ceci:Est-il possible d'invalider le texte seulement, mais pas l'image de fond sur une vue personnalisée sur Android?
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????
}
}
Merci beaucoup. Je ne savais pas qu'une telle méthode existe. Parfois, il y a trop de méthodes pour un seul objet de sorte qu'il est difficile de trouver la bonne méthode que je cherche .... –
C'est l'un des problèmes d'Android, quant à moi. Il y a des tonnes de méthodes utiles. Mais il est difficile de se souvenir de quoi que ce soit. –