2014-09-22 85 views
0

我在網上搜索了所有代碼並嘗試了所有代碼但我沒有獲得將我的圖像從一個活動轉移到另一個活動的正確方法。 這裏是我的活動答:如何在Android中的兩個活動之間傳輸圖像

Intent intent = new Intent(getApplicationContext(),Greeting.class); //Greeting is Activity 2 
intent.putExtra("editvalue", edit.getText().toString());    
intent.putExtra("path", ImageURI.toString()); //Got uri in the form of file:///storage/emulated/0/zedge/wallpaper/Incredible_quotes-wallpaper-10355947.jpg 

startActivity(intent); 

這是我如何找回我的形象在活動2:

Uri u=Uri.parse(intent.getStringExtra("path")); 
Log.d("TAGGG222",u.toString()); //printing the sane URI as above. 
imageview.setImageURI(u); 

我失去了一些東西,並請儘可能指導我用正確的方法是什麼? 謝謝

+1

你的程序發生了什麼?它會崩潰嗎?如果是,什麼是logcat? u.toString()是否正確打印? – 2014-09-22 18:50:32

+0

file:///storage/emulated/0/zedge/wallpaper/Incredible_quotes-wallpaper-10355947.jpg這是第一個活動中選定圖像的URI,我將這個uri傳遞給了另一個活動並使用了imageView.setImageURI(uri)但它顯得空白。該應用程序不會崩潰。 – therealprashant 2014-09-22 18:54:30

+1

檢查imageview對用戶是可見的。在XML佈局文件中靜態設置其圖像資源,並確保它可見。 – 2014-09-22 18:59:49

回答

0

你可以把它作爲一個額外的,例如intent.putExtra(「data」,bitmap)。一個位圖實現了Parcelable,所以你可以把它放在一個額外的。同樣,一個包已經putParcelable。

如果您想將它傳遞給中間活動,我會將它存儲在一個文件中。這樣更有效率,而且對你來說工作更少。您可以使用MODE_PRIVATE在數據文件夾中創建任何其他應用無法訪問的私有文件。

+1

我同意,在活動之間傳遞位圖是個壞主意 - 消耗的內存太多。您寧願將其保存在應用程序的專用緩存目錄中(不再需要寫入權限),將其路徑置於意圖中,然後在下一個活動中再次讀取該文件。 – judepereira 2017-03-09 07:24:27

相關問題