2012-10-12 43 views
1

我這是怎麼燒的意圖擺脫相冊圖片相冊和Dropbox應用

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(intent, SELECT_PICTURE); 

然後從結果我採取的路徑從

Uri selectedImageUri = data.getData(); 

public String getPath(Uri selectedImageUri) { 
    String[] projection = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = managedQuery(uri, projection, null, null, null); 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 
    return cursor.getString(column_index); 
} 
所選圖像

並將該圖像放在SD卡中。

但隨着Dropbox的應用也將安裝,然後也出現,當我選擇圖像,然後烏里就這樣產生

文件:///mnt/sdcard/Android/data/com.dropbox.android/files /scratch/FloorPlanImage/7th_floor_new.jpg

現在當我嘗試getPath它崩潰。你能告訴我如何解決這個問題,以便我可以採取形象的路徑,並將其保存在SD卡?

回答

1

嗯,我得到了什麼問題是

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 

回報毫無作爲圖像從Dropbox的選擇,而不是從機器人的照片庫。

所以我確實使用了Uri,當選擇圖像並使用它來設置ImageView並且效果很好時。

謝謝!

1

使用下面的代碼,這是工作非常適合我

Intent intent = new Intent(); 
      intent.setType("image/*"); 
      intent.setAction(Intent.ACTION_GET_CONTENT); 
      startActivityForResult(
        Intent.createChooser(intent, "Upload photo"), 
        RESULT_LOAD_IMAGE); 

在 'onActivityResult' 寫下面的代碼

protected void onActivityResult(final int requestCode, int resultCode, 
      Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK 
       && null != data) { 


Uri selectedImage = data.getData(); 
imageView.setImageURI(selectedImage); 


     } else 

     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 
      photo = (Bitmap) data.getExtras().get("data"); 
      imageView.setImageBitmap(photo); 

     } 
}