【问题标题】:Can't Display Captured Image to an other Activity, how to make it work?无法将捕获的图像显示到其他活动,如何使其工作?
【发布时间】:2015-06-23 16:59:56
【问题描述】:

我想从自定义相机中捕获图像,然后将其显示在可以添加其他 png 表情符号的其他活动上,我有此代码,但在活动启动后它不显示任何照片

【问题讨论】:

    标签: android android-intent android-activity camera photo


    【解决方案1】:

    请查看我在您的代码中所做的一些更改。

    1.请在拍照后调用new Intent并像我一样传递文件路径。

    主要活动:

      ImageView mCaptureButton = (ImageView) findViewById(R.id.button_capture);
            mCaptureButton.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // get an image from the came
                            mCamPreview.captureImage(MainActivity.this);
        //starting(); // don't call Intent here
                }       
            });
    
        }
    

    CameraPreview 类:

    private Activity _activity ;
        public void captureImage(Activity activity){
    this._activity = activity;
        mCamera.takePicture(null, null, mJpegCallback);
    }
    
    PictureCallback mJpegCallback = new PictureCallback() {
        @Override
         public void onPictureTaken(byte[] data, Camera camera) {
            final Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
    
            // Store bitmap to local storage
            FileOutputStream out = null;
            try {
                // Prepare file path to store bitmap
                // This will create Pictures/MY_APP_NAME_DIR/
                File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_PICTURES), "AVORI");
                if (!mediaStorageDir.exists()) {
                    if (!mediaStorageDir.mkdirs()) {
                        Log.d(TAG, "failed to create directory");
                        return;
                    }
                }
    
                // Bitmap will be stored at /Pictures/MY_APP_NAME_DIR/YOUR_FILE_NAME.jpg
                String filePath = mediaStorageDir.getPath() + File.separator + "Av.jpg";
                out = new FileOutputStream(filePath);
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
    //call EditPicture.class here
     Intent i = new Intent(_activity, EditPicture.class);
        i.putExtra("FILE_PATH", filePath );
    startActivity(i); 
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (out != null) {
                        out.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    };
    

    【讨论】:

    • 当我把意图放在那里时它显示错误,有什么想法吗?
    • 它显示什么错误?您需要将 CameraPreview.this 作为上下文传递
    • 它显示构造函数意图(CameraPreview 类)未定义,我尝试使用 CameraPreview.this,EditPicture.class
    • 再次在主活动和相机预览中显示错误,在相机预览中我这样做了,受保护的 MainActivity mActivity; Intent i = new INtent (mActivity, EditPicture.class);等等......但它向我展示了双方的错误,很抱歉这么烦人,但我只是不知道出了什么问题,你能再试一次来帮助我吗?
    • 使用这个Activity mActivity; Intent i = new INtent (mActivity, EditPicture.class);你有没有做过这个 public void captureImage(Activity activity){ this.mActivity= activity; mCamera.takePicture(null, null, mJpegCallback); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多