2011-12-13 20 views
0

可能重複:
How can I pass a Bitmap object from 1 activity to another如何從一個活動傳遞的字節圖像到另一個機器人

我使用android系統中的相機應用程序。在我的應用程序中,我嘗試將點擊的圖像傳遞給另一個活動。如圖所示波紋管代碼,

PictureCallback jpegCallback = new PictureCallback() 
    { 
     public void onPictureTaken(byte[] data, Camera camera) 
     { 
       Intent i = new Intent(Hackbook.this, view.class); 
        i.putExtra("photo", data); 
        Log.d(TAG, "jpegCallback1" +data); 
        startActivity(i); 
     } 
    }; 

和第二活動view.java是,

setContentView(R.layout.view); 
     Bundle extras = getIntent().getExtras(); 
     byte[] photo = extras.getByteArray("photo"); 
     Log.i(TAG, "jpegCallback2" + photo); 
     Bitmap bitmap = BitmapFactory.decodeByteArray (photo, 0, photo.length); 
     ImageView imgView = (ImageView)findViewById(R.id.photoResultView); 
     imgView.setImageBitmap(bitmap); 

當我運行這在模擬器i。在仿真器得到的圖像即內置。但是當im試圖在我的設備中運行這個時,第二個活動中沒有顯示圖像。 logcat的顯示波紋管,

12-14 17:58:33.756: DEBUG/camera(630): jpegCallback1[[email protected] 
12-14 17:58:33.785: INFO/ActivityManager(58): Starting activity: Intent { cmp=com.facebook.android/.view (has extras) } 
12-14 17:58:33.985: INFO/Camera(630): jpegCallback2[[email protected] 
12-14 17:58:34.605: INFO/ActivityManager(58): Displayed activity com.facebook.android/.view: 730 ms (total 730 ms) 
12-14 18:00:56.351: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol 

如果有誰知道這一點,請幫助我....

+3

使其靜態和訪問的第二個活動 –

+1

同意nik博士,這是實施而不是傳遞額外信息的最佳方式。 –

+0

嗨@ Dr.nik,我不知道如何使該字節數據爲靜態。你能解釋一下嗎? – Binu

回答

0
possible duplicate answer 

嘗試使用意向對象這樣的方式來傳遞位圖對象

Intent i = new Intent(Hackbook.this, view.class); 
Bitmap bitmap = BitmapFactory.decodeByteArray (data, 0, photo.length); 
i.putExtra("BitmapImage", bitmap); 
startActivity(i); 

和檢索時間這樣做

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage"); 

看到這篇文章https://stackoverflow.com/a/2459624/760489

+0

這可能是我的想法。 –

0

你可以簡單地命名你的位圖爲靜態優先。

public static Bitmap bitmap; 

然後在第一個活動

public static Bitmap getBitmap(){ 
    return bitmap; 
} 

創建這樣的方法,並呼籲在那裏你需要該功能(其他活動)

bitmap_requiredclassname.getBitmap(); 
相關問題