如何通过捕获/画廊图像在Android的下一个活动 [英] how to pass captured/gallery image to next activity in android

查看:101
本文介绍了如何通过捕获/画廊图像在Android的下一个活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从画廊通过摄像头拍摄的图像,选择图像,图像应是在拍摄的图像下一个活动显示我的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(位图);        }


解决方案

使用此。

 意向意图=新意图(这一点,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);

这篇关于如何通过捕获/画廊图像在Android的下一个活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆