0

我必須從相機應用程序拍攝照片並將其發送至郵件。從我的相機應用程序拍攝照片後,圖片不保存到機器上

我的問題是,當我從我的相機應用程序的照片,它不會將它保存到畫廊。而當我使用函數getlastimageid(它需要相機拍攝的最後一個圖像的地址),它的地址該圖像不是由我的相機應用程序拍攝的,但是需要相機最後拍攝的圖像的ID。 注意:在三星手機上它可以正常工作,即將照片自動保存到圖庫中,但不能保存在其他圖庫中。

我的代碼是

public class CameraProject extends Activity { 

Button button; 
Bitmap btm; 
Bitmap thumbnail; 
String filePath; 
    File pic; 
final static int CameraData = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_camera_project); 
    button = (Button) findViewById(R.id.cont); 


} 


//start camera activity 
public void camera(View v) { 
    Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(i, CameraData); 
      } 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     btm = (Bitmap) extras.get("data"); 

    } 
     if(resultCode == RESULT_OK) 
     { 
      //it moves to another activity 
      Intent intent1=new Intent (CameraProject.this,INF.class); 

      startActivity(intent1); 


} 
     else { 
      //if discard it reopen camera activity 
      Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(i, CameraData); 
     } 

} 

    public void exit(View v) 
    { 
    finish(); 
} 

}

而且經常拿相機拍攝的最後一張照片的圖像標識的功能是:

private int getLastImageId(){ 
    final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA }; 
    final String imageOrderBy = MediaStore.Images.Media._ID+" DESC"; 
    Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, null, null, imageOrderBy); 
    if(imageCursor.moveToFirst()){ 
     int id = imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID)); 
     fullPath = imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.DATA)); 
     Log.d(TAG, "getLastImageId::id " + id); 
     Log.d(TAG, "getLastImageId::path " + fullPath); 
     imageCursor.close(); 
     return id; 
    }else{ 
     return 0; 
    } 
} 
+0

HTTP:/ /stackoverflow.com/questions/15377399/how-do-i-save-my-imageview-image-into-gallery-android-development和http://stackoverflow.com/questions/8560501/an DROID保存圖像,進入畫廊 – 2013-05-10 19:33:13

回答

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

    } 


    } 
} 
相關問題