2016-07-29 2 views
0

Je le code suivant:images Précharger Android

@Override 
public void surfaceCreated(SurfaceHolder holder) { 
    Log.v(StartupActivity.TAG, "SURFACE CREATED"); 
    bitmaps = new HashMap<>(); 
    bitmaps.put("logo", BitmapFactory.decodeResource(getContext().getResources(), R.drawable.logo)); 
    displayLoadingBitmap(); 
    bitmaps.remove("logo"); 
    System.gc(); 
    .... 
} 

La surface est créée immédiatement, mais mon bitmap apparaît un peu en retard. Existe-t-il un moyen de précharger bitmap dans par exemple StartupActivity et de l'envoyer à l'activité en cours juste pour l'afficher?

Répondre

1

Oui, vous pouvez précharger ce bitmap dans l'activité de démarrage et le transmettre à l'activité cible. Pour envoyer cette image bitmap, comme les bitmaps implémentent Parceable, ils peuvent être sérialisés et transmis à une autre activité, afin de pouvoir envoyer cette image bitmap.

StartUpActivity:

Intent intent = new Intent(this, TargetActivity.class); 
intent.putExtra("image", bitmap); 

TargetActivity:

Intent intent = getIntent(); 
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("image"); 

Sinon, vous êtes recommandé d'utiliser Picasso bibliothèque qui gère toutes les choses que vous auriez besoin au sujet de la mise en cache pour récupérer les images.

+0

Cela modifie en quelque sorte l'intention de sorte qu'il s'agit d'une transition entre StartupActivity et le même StartupActivity .... – duri

+0

@duri Non, il s'agit d'un ajout régulier qui peut être transmis en utilisant Intent. Assurez-vous que 'TargetActivity' est correctement défini. –