2012-07-21 155 views
2

如何在imageview中顯示從"android.intent.action.SEND"收到的圖像? 用戶從應用程序列表中選擇我的應用程序以共享圖像。圖像是sent via intent和我的活動打開,但如何在imageview中使用此圖像?從意圖在圖像視圖中顯示jpg圖像

使用

Bitmap thumbnail = (Bitmap) getIntent().getExtras().get("data"); 

沒有幫助和

getIntent().getType() returns image/jpg 

回答

3

您receving在意圖形象,所以你必須更新你的Manifest爲:

<activity android:name=".Your_Activity" > 
    ... 
    ... 
    <intent-filter> 
    ... 
     <action android:name="android.intent.action.SEND" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="image/*" /> 
    </intent-filter> 
</activity 

然後活動需要:

void onCreate (Bundle savedInstanceState) { 
... 
// Get intent, action and MIME type 
Intent intent = getIntent(); 
String action = intent.getAction(); 
String type = intent.getType(); 

if (Intent.ACTION_SEND.equals(action) && type != null) { 
    if (type.startsWith("image/")) { 
     Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); 
     if (imageUri != null) { 
      YourImageView.setImageUri(imageUri); 
     } 
    } 
. 
. 
. 
+0

由於一噸,它的工作就像一個魅力只是一個小更新,功能名稱是setImageURI – 2012-07-21 09:36:47

+0

哦,是的,這(setImageUri)是我的錯,你還告訴我使用setImageURI()...謝謝。 – 2012-07-21 09:38:29

0

試試這個

BitMap thumnail= (Bitmap) getIntent().getExtras().getParcelable("data"); 
yourImageViewId.setImageBitmap(receiptimage); 

希望它可以幫助

+0

遺憾沒有幫助:( – 2012-07-21 09:14:23

0

Bitmap實現Parcelable接口。因此,要通過它使用

intent.putExtra("bitmap", bitmap); 

,並檢索其使用方法:

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

,並使用ImageView.setImageBitmap()

編輯:!見Receiving Content from Other Apps

+0

putExtra的東西不在我的控制之下,它是控制意圖觸發的外部應用程序,而圖庫發送的是jpg圖像而不是位圖。不會在我的情況下工作。感謝您的答案:) – 2012-07-21 09:30:34

+0

使用Chintan的答案或閱讀http://developer.android.com/training/sharing/receive.html它適合您的情況 – biegleux 2012-07-21 09:32:26