将图像发送到另一个ImageView(在其他活动中)​​

时间:2015-12-31 10:05:05

标签: android image android-studio

我目前正在开发Android应用程序。我目前的进展是我成功开发了自定义安卓摄像头。我按照这一步(http://courses.oreillyschool.com/android2/CameraAdvanced.html)给出的教程将图片保存到图库中,但我想插入图片的名称,描述和其他信息,因为我要保存图像以及用户输入数据库的详细信息。

这是我的界面上的例子:

a)成功拍摄图片:

enter image description here

b)需要传递到另一个Imageview(红色圆圈)的图像:

enter image description here

我希望保存按钮能够将拍摄的图像传递给ImageView(红色圆圈),而不是将图像存储到图库中。以下是保存按钮上的代码:

private View.OnClickListener mSaveImageButtonClickListener = new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        File saveFile = openFileForImage();
        if (saveFile != null) {
            saveImageToFile(saveFile);
        } else {
            Toast.makeText(Capturingimage.this, "Unable to open file to save the image.", Toast.LENGTH_LONG).show();
        }
    }
};

这是保存图像到文件的方法:

private void saveImageToFile(File file) {
    if (mCameraBitmap != null) {
        FileOutputStream outStream = null;
        try {
            outStream = new FileOutputStream(file);
            if (!mCameraBitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream)) {
                Toast.makeText(Capturingimage.this, "Unable to save image to file.",
                        Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(Capturingimage.this, "Saved image to: " + file.getPath(),
                        Toast.LENGTH_LONG).show();
            }
            outStream.close();
        } catch (Exception e) {
            Toast.makeText(Capturingimage.this, "Unable to save image to file.",
                    Toast.LENGTH_LONG).show();
        }
    }
}

我的ImageView(redCircle)ID是: @ + id / image_view_after_capture

如果你们对代码不是很清楚,那么这里是MainActivity.java上完整源代码(http://courses.oreillyschool.com/android2/CameraAdvanced.html)上的链接。对不起,如果我的问题有点乱,对代码的解释不多。我是android编程的新手,我希望你们能教我。我非常感谢您的时间和帮助,考虑帮助我。

提前谢谢你!

1 个答案:

答案 0 :(得分:0)

保存图像时,保留捕获的图像路径并传递到另一个要显示的活动

 String mCaptureImagePath="";
     private void saveImageToFile(File file) {
        if (mCameraBitmap != null) {
            FileOutputStream outStream = null;
            try {
                outStream = new FileOutputStream(file);
                if (!mCameraBitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream)) {
                    Toast.makeText(Capturingimage.this, "Unable to save image to file.",
                            Toast.LENGTH_LONG).show();
                } else {
 mCaptureImagePath=file.getPath();  //**** this is your save image path
                    Toast.makeText(Capturingimage.this, "Saved image to: " + file.getPath(),
                            Toast.LENGTH_LONG).show();
                }
                outStream.close();
            } catch (Exception e) {
                Toast.makeText(Capturingimage.this, "Unable to save image to file.",
                        Toast.LENGTH_LONG).show();
            }
        }
    }

在您想要的地方展示图像之后

BitmapFactory.Options bmOptions = new BitmapFactory.Options();
Bitmap bitmap = BitmapFactory.decodeFile(mCaptureImagePath,bmOptions);
yourImageView.setImageBitmap(bitmap);