Android应用未在ImageView上设置图片

时间:2014-12-02 13:10:23

标签: android camera imageview

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);
        }

1 个答案:

答案 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);
}

我希望这有助于你。