如何在一个类中选择图像并将其显示在其他类的图像视图上

时间:2014-03-20 15:18:42

标签: android android-layout android-intent

我正在使用按钮从图库中选择图像,图像将设置为其他屏幕上的图像视图:

// setimg按钮位于firstscreen.xml

setimg.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent i = new Intent(
                    Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

                    startActivityForResult(i, RESULT_LOAD_IMAGE);
        }
    });

}   
    @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);


        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
             Uri selectedImage = data.getData();
             String[] filePathColumn = { MediaStore.Images.Media.DATA };

             Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
             cursor.moveToFirst();

             int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
             String picturePath = cursor.getString(columnIndex);
             cursor.close();

             // String picturePath contains the path of selected Image

                ImageView iv_wallset = (ImageView) findViewById(R.id.iv_wallset);
                iv_wallset.setImageBitmap(BitmapFactory.decodeFile(picturePath));
         }
}

}

// Imageview iv_wallset在second.xml上

我们可以使用intent.putextra()将图像从一个屏幕传送到其他屏幕吗?

2 个答案:

答案 0 :(得分:0)

是将图像转换为字节数组并将该字节数组传递给其他活动。

答案 1 :(得分:0)

是的,您可以在intent中添加一个额外的String,并从第二个activity获取参数并解码图片:

活动1中的

mIntent.putExtra("image_path", picturePath);
活动2中的

String path = getIntent().getStringExtra("image_path");
ImageView imageView = (ImageView) findViewById(R.id.iv_wallset);
imageView.setImageBitmap(BitmapFactory.decodeFile(path));