2013-04-24 2 views
2

я называю намерение камеры и попытаться сохранить захваченное изображение в SD card.but намерения камеры дать мне пустой data.what проблемы я не могу understood.my код, как следоватьСохранить Захват изображения в SD-карте андроид

imgBtnPicture.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      String fileName="ashraful.jpg"; 

      String root = Environment.getExternalStorageDirectory().toString(); 
      new File(root + "/photofolder").mkdirs(); 
      File outputfile=new File(root+"/photofolder/", fileName); 
      Uri outputFileUri = Uri.fromFile(outputfile); 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
      startActivityForResult(cameraIntent, CAMERA_REQUEST); 
     } 
    }); 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 

     if(data!=null) 
     { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      Bitmap icon1=ResizeBitmap(photo,200,200); 
      imgBtnPicture.setImageBitmap(icon1); 
     } 
    } 
} 

но я получаю нулевые данные? как решить мою проблему? плз помочь

ответ

1

Читать this Android пост учебный тщательно, чтобы понять вещи. Как говорится в сообщении,

Приложение Android Camera сохраняет полноразмерную фотографию, если вы даете ей файл для сохранения.

так что если вы сделали передать Uri файла, вы должны получить доступ изображения с помощью этой Uri.

2
private void takeNewPicture() { 

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    ContentValues values = new ContentValues(3); 

    values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); 
    cameraImagePath = getContentResolver().insert(
      MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
    takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, cameraImagePath); 
    startActivityForResult(takePictureIntent, CAMERA_REQUEST); 
} 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 

    String[] filePathColumn = { MediaStore.Images.Media.DATA }; 
    Uri imageFilePathUri = null; 
    if (cameraImagePath != null) { 
     Cursor imageCursor = getContentResolver().query(
      cameraImagePath, filePathColumn, null, null, null); 
    if (imageCursor != null && imageCursor.moveToFirst()) { 
     int columnIndex = imageCursor.getColumnIndex(filePathColumn[0]); 
     String filePath = imageCursor.getString(columnIndex); 
     imageCursor.close(); 
     imageFilePathUri = filePath != null ? Uri 
       .parse(filePath) : null; 
    } 

    } 


    } 
} 

cameraImagePath является Uri объект

Смежные вопросы