android在相机的imageview中显示图像

时间:2014-09-03 06:08:06

标签: android image if-statement bitmap

我正在尝试使用以下代码使用相机拍照并将其显示在ImageView

public void takepic(View view) {

    String timeStamp = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss").format(new Date());
    String imageFileName = timeStamp + ".jpg";
    TextView detail = (TextView)findViewById(R.id.textView1);
    detail.setText(imageFileName); 
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    
        File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            String name = imageFileName;


            File file = new File(path, name);
            outputFileUri = Uri.fromFile(file);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
            startActivityForResult(intent, TAKE_PICTURE); 


}

static final int REQUEST_IMAGE_CAPTURE = 1;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    switch(requestCode) {

    case 3:
        if (resultCode == RESULT_OK){

                File imgFile = new  File(outputFileUri.toString());

                TextView detail = (TextView)findViewById(R.id.textView1);
                detail.setText(imgFile.toString()); 

            if(imgFile.exists()){

                Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

                ImageView myImage = (ImageView) findViewById(R.id.mImageView);
                myImage.setImageBitmap(myBitmap);

            }
            else{
                Toast.makeText(getBaseContext(), "Doesnt Exist", Toast.LENGTH_LONG).show();

            }
        }}}

问题是它没有显示图片

图片为其提供文件名并将其保存在图片目录中。

当它到达onActivityResult时,outputFileUri.toString()给出以下内容

  

"文件:/storage/emulated/0/Pictures/03-09-2014-06-53-04.jpg"

当我检查图片目录时,图片就在那里并拼写正确

但是当它转到imgFile.exists if语句时它表示它不存在并且将其他吐司祝酒

我出错的任何想法?

任何帮助表示赞赏

标记

2 个答案:

答案 0 :(得分:0)

如果您的案例为onActivityResult,则在RESULT_OK中,您的参数data已经拥有了捕获的位图。

所以你可以试试这个:

Bitmap photo = (Bitmap) data.getExtras().get("data"); 
imageView.setImageBitmap(photo);

希望这有帮助。

答案 1 :(得分:0)

使用此代码:

 if(imgFile!=null){


Bitmap myBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imgFile.toString());
 ImageView myImage = (ImageView) findViewById(R.id.mImageView);
                myImage.setImageBitmap(myBitmap);

}