Android: comment obtenir une vue personnalisée pour redessiner partiellement?

J'ai une vue personnalisée qui remplit la totalité de mon écran. (Sur un clavier de piano)
Lorsqu'un utilisateur touche de la clé, il provoque invalidate() d'être appelé et de l'ensemble du clavier obtient redessiné pour montrer le nouvel état avec un touché clé.

Actuellement la vue est très simple, mais j'ai l'intention d'ajouter un peu plus de jolis graphismes. Depuis l'ensemble du clavier est affiché dynamiquement ce serait faire redessiner l'intégralité du clavier plus cher.

Alors j'ai pensé, regardons vers partielle de la redessiner. Maintenant, je invalidate(Rect dirty) avec le bon sale région. J'ai mis mon onDraw(Canvas canvas) méthode à ne dessiner les clés dans la sale de la région si je ne veut partielle d'un dessin. Il en résulte ces clés étant établi, mais le reste du clavier est totalement noir/pas du tout.

Je suis mal en attendant que l'appel invalidate(Rect dirty) serait "cache" le courant canvaset seuls "permet de" dessiner dans la sale de la région?

Est-il possible que je peux réaliser ce que je veux? (Une sorte de "cache" à la toile et seulement redessiner la zone sale?"

source d'informationauteur Peterdk