2016-07-29 27 views
0

をアンドロイド:プリロード・イメージは、私は次のコードを持っている

@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(); 
    .... 
} 

表面がすぐに作成されますが、私のビットマップは少し遅れて表示されています。 StartupActivityのようなビットマップをプリロードして、それを表示するためだけに現在のアクティビティに送信する方法はありますか?

答えて

1

はい、開始アクティビティでそのビットマップをプリロードして、ターゲットアクティビティに渡すことができます。

ビットマップを送信するために、ビットマップはParceableを実装しているため、シリアル化して別のアクティビティに渡すことができます。

StartUpActivity:

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

TargetActivity:代わりにあなたはキャッシングとフェッチの画像について、必要となるすべてのものを扱うPicassoライブラリを使用することを推奨している

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

+0

それは何とかStartupActivityと同じStartupActivityの間の遷移になるようにインテントを変更します。 – duri

+0

@duriいいえ、それはインテントを使って渡すことができる通常の余計なものではありません。 'TargetActivity'が正しく設定されていることを確認してください。 –

関連する問題