2016-07-29 22 views
0

Ich habe den folgenden Code:Preload Bilder 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(); 
    .... 
} 

Die Oberfläche sofort erstellt wird, aber mein Bitmap erscheint ein wenig spät. Gibt es eine Möglichkeit, Bitmap beispielsweise in StartupActivity vorzuladen und sie an die aktuelle Aktivität zu senden, nur um sie anzuzeigen?

Antwort

1

Ja, Sie können diese Bitmap in der Startaktivität vorab laden und an die Zielaktivität übergeben.

Um diese Bitmap zu senden, da Bitmaps Parceable implementieren, können sie serialisiert und an eine andere Aktivität übergeben werden.

StartUpActivity:

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

TargetActivity:

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

Alternativ sind Sie empfohlen Picasso Bibliothek zu verwenden, die alle Sachen Griffe Sie Caching und Abrufen von Bildern benötigen würde.

+0

Es ändert irgendwie die Absicht, also ist es Übergang zwischen StartupActivity und der gleichen StartupActivity .... – duri

+0

@duri Nein ist es ein regelmäßiges Extra, das mit Absicht weitergegeben werden kann. Stellen Sie sicher, dass "TargetActivity" richtig eingestellt ist. –