ImageView.setImageBitmap () recycle-t-il le bitmap précédemment défini?
Disons que j'ai code un peu comme celui ci-dessous:
protected void onCreate(Bundle bundle){
this.imageView = (ImageView) contentView.findViewById(R.id.imageView);
this.setFirstBitmap();
this.setSecondBitmap();
}
private setFirstBitmap(){
Bitmap bitmap1 = BitmapFactory.decodeFile(bitmapFile1);
imageView.setImageBitmap(bitmap1);
}
private setSecondBitmap(){
Bitmap bitmap2 = BitmapFactory.decodeFile(bitmapFile2);
imageView.setImageBitmap(bitmap2);
}
Dans ce cas, l'imageView recycler bitmap1 ou dois-je le faire avant de mettre en bitmap2?
source d'informationauteur W.K.S
Vous devez vous connecter pour publier un commentaire.
ImageView ne pas libérer les images automatiquement
Il arrive, comme expliqué par @Vipul'
Bitmaps de référence doit être libérée en appel
bitmap.recycle()
Lorsque vous souhaitez affecter une autre image de l'ImageView recycler le précédent en appelant
Prendre un coup d'oeil à cette
Lorsque vous essayez de décoder et d'afficher le deuxième bitmap Java va dire à la GC que premier bitmap doivent être recyclés depuis le développeur n'est plus l'utiliser.GC le ferons plus tard.
Mais si vous qui fait un large usage d'images (vitesse d'affectation peut être supérieure à la vitesse à laquelle bitmap arriver recyclé), alors vous pourriez vouloir recycler inutilisés bitmaps ASAP.Vous devriez appel à recycler() lorsque vous avez terminé d'utiliser l'image bitmap. ( Rappelez-vous toujours de ne pas essayer de recycler bitmap, quand il est indiqué sur l'écran.)