My Activity有2个按钮,一个用于摄像头,另一个用于向服务器发送数据,问题是当我关闭应用程序时,我无法在ImageView上设置新图像,当我拍照时我不能使用“发送”按钮。我需要找到一种方式,当我拍照时我仍然可以使用我的其余活动,我只想设置imageView以查看我从相机获得的图像,当我关闭应用程序时,我想成为能够设置一张新照片(它不断给我一个空白的图像)。
这里我初始化相机。
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
});
在这里,我使用从相机获得的位图设置imageView。
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
setContentView(R.layout.comprovante_geral);
final ImageView photo_view = (ImageView) findViewById(R.id.photo_view);
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
photo_view.setImageBitmap(imageBitmap);
}
答案 0 :(得分:0)
使用以下代码替换此onActivityResult方法。
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == 1 && resultCode == RESULT_OK)
{
Uri selectedImageUri = data.getData();
String imagepath = getPath(selectedImageUri);
File imageFile = new File(imagepath);
}
}
public String getPath(Uri uri)
{
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(projection[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
yourSelectedImage = BitmapFactory.decodeFile(filePath);
return cursor.getString(column_index);
}
我希望这有助于你。