从意图在图像视图中显示jpg图像

问题描述:

如何在imageview中显示从"android.intent.action.SEND"收到的图像? 用户从应用程序列表中选择我的应用程序以共享图像。图像是sent via intent和我的活动打开,但如何在imageview中使用此图像?从意图在图像视图中显示jpg图像

使用

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

没有帮助和

getIntent().getType() returns image/jpg 

您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

试试这个

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

希望它可以帮助

+0

遗憾没有帮助:( – 2012-07-21 09:14:23

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