我目前正在开发Android应用程序。我目前的进展是我成功开发了自定义安卓摄像头。我按照这一步(http://courses.oreillyschool.com/android2/CameraAdvanced.html)给出的教程将图片保存到图库中,但我想插入图片的名称,描述和其他信息,因为我要保存图像以及用户输入数据库的详细信息。
这是我的界面上的例子:
a)成功拍摄图片:
b)需要传递到另一个Imageview(红色圆圈)的图像:
我希望保存按钮能够将拍摄的图像传递给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编程的新手,我希望你们能教我。我非常感谢您的时间和帮助,考虑帮助我。
提前谢谢你!
答案 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);