从活动A传递图像URL / URI以在活动B Android中打开为图像

时间:2015-06-05 07:56:59

标签: android android-layout bitmap

如何从项目上的活动A传递URL / URI单击活动B从URL加载图像?

活动A

public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {


    HttpGet imageurl = new HttpGet("https://jiresal-test.s3.amazonaws.com/deal3.png");
    Intent freebie = new Intent(this,PuzzleActivity.class);
    freebie.putExtra("image", imageurl.toString());
    startActivity(freebie);

    Toast.makeText(this, "Item Clicked: " + position, Toast.LENGTH_SHORT).show();
}

关于活动B

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent)
{
  super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
  switch(requestCode)
  {
    case RESULT_SELECT_IMAGE:
    {
        if(resultCode == RESULT_OK)
        {
            Uri selectedImage = imageReturnedIntent.getData();
            loadBitmap(selectedImage);//Where to Load Image
        }       
        break;
    }

活动B必须加载图像不显示URL?URI

活动B加载图像表单类 - loadBitmap(selectedImage); //加载图像的位置

2 个答案:

答案 0 :(得分:0)

为什么不尝试这样的事情

Bitmap实现Parcelable,因此您可以始终在intent中传递它。尝试以下代码:

第一项活动。

Intent mIntent = new Intent(this, ActivityTwo.class);
mIntent.putExtra("bmp_img", bmp);

要获取目标活动的输出,请尝试:

第二项活动。

Bitmap mBitmap = (Bitmap) intent.getParcelableExtra("bmp_img");

你总是使用getParcelableExtra(&#34; key&#34;)来获取Activity中传递的Bitmap。

或者你可以将图片网址转换为位图像这样的东西

   URL url = new URL("http://....");
   Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());

答案 1 :(得分:0)

我认为您误解了有关startActivityForResult()和onActivityResult()的内容。您可以查看android SDK文档以了解它们的工作原理。

在你的情况下,你可以像这样在B的onCreate()中获取网址:

 String imageUrl=getIntent.getStringExtra("image");