2010-08-20 27 views
1

J'ai sous-classé View et fait un dessin bitmap à l'intérieur de la méthode onDraw. Cette vue est ensuite placée dans un scrollview horizontal. Parfois, les bitmaps ne seront pas visibles puisqu'ils sont défilés hors de l'écran. Pour améliorer les performances, je souhaite éviter de dessiner quoi que ce soit lorsque l'objet ne sera pas visible.Comment puis-je déterminer si je vais dessiner hors écran lorsque je fais un bitmap personnalisé dans une vue à l'intérieur d'un scrollview dans Android

Donc la question est, comment puis-je déterminer que mon bitmap sera tiré de l'écran afin que je puisse juste revenir sans dessiner?

Répondre

1

Je résolu ce problème en:

Rect s = new Rect(); 
getLocalVisibleRect(s); 

// (...) 
// Do not draw if outside screen 
Rect b = getBounds(); 
boolean offScreen = b.left > s.right || b.right < s.left || b.top > s.bottom || b.bottom < s.top; 
if (!offScreen) { 
    // Draw here 
}