Drawable vs Unique réutilisable Bitmap mieux avec de la mémoire?

Si je comprends bien (pas que je suis correct) un drawable sont généralement correctement supprimé de la mémoire lorsque l'application est terminée avec eux. Les Bitmaps doivent cependant être manuellement recyclé, et parfois même une classe spéciale écrite de les manipuler correctement. Ma question est, en ce qui concerne la mémoire et les fuites, est-il plus avantageux de simplement coller avec un drawable comme tel:

myView.setBackgroundDrawable(getResources().getDrawable(R.drawable.my_image));
myView1.setBackgroundDrawable(getResources().getDrawable(R.drawable.my_image1));
myView2.setBackgroundDrawable(getResources().getDrawable(R.drawable.my_image2));

plutôt que quelque chose comme ça avec les Bitmaps:

Bitmap tmpBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
myView.setImageBitmap(tmpBitmap);

tmpBitmap.recycle();
tmpBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image1);
myView1.setImageBitmap(tmpBitmap);

tmpBitmap.recycle();
tmpBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image2);
myView2.setImageBitmap(tmpBitmap);
tmpBitmap.recycle();

J'ai aussi lu bien sûr que vous devez être prudent au sujet de recyclage() la méthode sur des Bitmaps, car ils peuvent être retirés pendant encore en usage? Il semble que ces questions de garder popping up dans différentes formes, mais je ne peux pas vraiment obtenir une réponse directe à partir de tous sur la question. Une personne dit à la réutilisation d'une image Bitmap et recycler après chaque utilisation, et d'autres disent utiliser un drawable et un unbindDrawables (), méthode (c'est ce que j'ai utilisé):

private void unbindDrawables(View view) {
    if (view.getBackground() != null) {
        view.getBackground().setCallback(null);
    }
    if (view instanceof ViewGroup) {
        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
            unbindDrawables(((ViewGroup) view).getChildAt(i));
        }
        ((ViewGroup) view).removeAllViews();
    }
}

Applicables insight serait très apprécié si. Grâce

InformationsquelleAutor While-E | 2011-08-12