如何通过捕获/画廊图像在Android的下一个活动画廊、图像、Android

2023-09-06 08:48:49 作者:撩妹大队长

我想从画廊通过摄像头拍摄的图像,选择图像,图像应是在拍摄的图像下一个活动显示我的code从图库中的图像不会在活动中展示工作fine..but选择图像。

第一次活动

 保护无效的onActivityResult(INT申请code,INT结果code,意图数据){    super.onActivityResult(要求code,结果code,数据);     如果(结果code == RESULT_OK){        如果(要求code == REQUEST_CAMERA){            乌里selectedImage = data.getData();            的String [] = filePathColumn {MediaStore.Images.Media.DATA};            光标光标= getContentResolver()查询(selectedImage,filePathColumn,NULL,NULL,NULL);            cursor.moveToFirst();            INT参数:columnIndex = cursor.getColumnIndex(filePathColumn [0]);            捕获的图像的//文件路径            的ImagePath = cursor.getString(参数:columnIndex);            捕获的图像的//文件路径            文件f =新的文件(的ImagePath);            字符串文件名= f.getName();            /*Toast.makeText(Contact.this,您所在位置:+的ImagePath,2000).show();            Toast.makeText(Contact.this,您的文件名:+文件名,2000年).show(); * /            cursor.close();            //Log.i(\"image路径的ImagePath);            位图的imageData = BitmapFactory.de codeFILE(的ImagePath);            //位图的imageData = NULL;             。为imageData =(位图)data.getExtras()获得(数据);             意图I =新意图(这一点,Cam.class);             i.putExtra(名,为imageData);             startActivity(ⅰ);            //imageview.setImageBitmap(bit);        }        否则,如果(要求code == SELECT_FILE){                //位图的照片=(位图)data.getData()的getPath()。                乌里selectedImageUri = data.getData();                的ImagePath =的getPath(selectedImageUri,NULL);                 //位图                // ByteArrayOutputStream BS =新ByteArrayOutputStream();                位图的imageData = BitmapFactory.de codeFILE(的ImagePath);                。为imageData =(位图)data.getExtras()获得(数据);                意向意图=新意图(这一点,Cam.class);                intent.putExtra(名,为imageData);                 startActivity(意向); 

第二项活动

 保护无效的onCreate(捆绑savedInstanceState){      super.onCreate(savedInstanceState);      的setContentView(R.layout.cam);      位图位图= getIntent()getExtras()getParcelable(名称)。;        ImageView的观点=(ImageView的)findViewById(R.id.imageView1);        view.setImageBitmap(位图);        } 

解决方案 Android客户端上传图片

使用此。

 意向意图=新意图(这一点,NewActivity.class);intent.putExtra(路径的ImagePath); 

在你的下一个活动获取为

 字符串IMAGE_PATH = getIntent()getStringExtra(路径)。位图位图= BitmapFactory.de codeFILE(IMAGE_PATH);imageview.setImageBitmap(位图); 

I want to pass captured camera image and select image from gallery, image should be display in next activity for captured image my code is working fine..but select image from gallery the image is not displaying in the activity..

First Activity

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
     if (resultCode == RESULT_OK) {
        if (requestCode == REQUEST_CAMERA) {

            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]);
            //file path of captured image
            imagepath = cursor.getString(columnIndex); 
            //file path of captured image
            File f = new File(imagepath);
            String filename = f.getName();

            /*Toast.makeText(Contact.this, "Your Path:"+imagepath, 2000).show();
            Toast.makeText(Contact.this, "Your Filename:"+filename, 2000).show();*/
            cursor.close();
            //Log.i("image path", imagepath);
            Bitmap imageData = BitmapFactory.decodeFile(imagepath);
            // Bitmap imageData = null;
             imageData = (Bitmap) data.getExtras().get("data");

             Intent i = new Intent(this, Cam.class);
             i.putExtra("name", imageData );
             startActivity(i);
            //imageview.setImageBitmap(bit);
        }



        else if (requestCode == SELECT_FILE) {
                //Bitmap photo = (Bitmap) data.getData().getPath(); 

                Uri selectedImageUri = data.getData();
                imagepath = getPath(selectedImageUri, null);

                 // your bitmap
                //ByteArrayOutputStream bs = new ByteArrayOutputStream();
                Bitmap imageData = BitmapFactory.decodeFile(imagepath);                                                                                               
                imageData = (Bitmap) data.getExtras().get("data");
                Intent intent = new Intent(this, Cam.class);
                intent.putExtra("name", imageData );
                 startActivity(intent);

Second Activity

protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.cam);

      Bitmap bitmap  = getIntent().getExtras().getParcelable("name");
        ImageView view = (ImageView) findViewById(R.id.imageView1);
        view.setImageBitmap(bitmap); 



        }

解决方案

Use this.

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("path", imagepath);

in your next Activity retrieve as

String image_path = getIntent().getStringExtra("path");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);
imageview.setImageBitmap(bitmap);