2016-07-29 61 views
0

我有以下代碼:預先載入圖像的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(); 
    .... 
} 

表面被立即建立,但我的位圖看起來有點晚。有沒有預加載位圖的方法,例如StartupActivity並將其發送到當前的Activity以顯示它?

回答

1

是的,您可以在開始活動中預加載該位圖並將其傳遞給目標活動。

爲了發送該位圖,由於位圖實現Parceable,它們可以被序列化並傳遞給另一個活動。

StartUpActivity:

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

TargetActivity:

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

或者你推薦使用Picasso庫,它負責處理所有的東西,你將需要大約高速緩存和取圖像。

+0

它以某種方式更改意圖,以便它在StartupActivity和相同的StartupActivity之間轉換.... – duri

+0

@duri不是它可以使用Intent傳遞的常規附加。確保'TargetActivity'設置正確。 –