en utilisant plusieurs codes disponibles dans tout le site, j'ai construit une petite application qui invoquerait l'intention Gallery et quand une image est sélectionnée, le chemin est rétabli.Android: Invoke Gallery via intention et sélectionnez une image
public class SDCardImagesActivity extends Activity {
final int REQ_CODE_PICK_IMAGE= 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.header);
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, REQ_CODE_PICK_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case REQ_CODE_PICK_IMAGE:
if(resultCode == RESULT_OK){
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
Toast.makeText(SDCardImagesActivity.this, "selected", 2000).show();
}
}
}
}
Mais quand je lance ce programme, je me exception suivante
08-09 15:12:53.191: ERROR/AndroidRuntime(26694): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
que quelqu'un peut me aider. Merci d'avance.
yep il y a des images. quand je sélectionne une image seule cette exception est levée. Arrayoutofbound :( –
c'était un problème de permission J'essayais d'accéder aux images que j'avais créées en utilisant mon application, et il semble qu'il n'y ait pas de privillage pour cela Quand j'essaye des images prises par une caméra native, ça fonctionne comme un charme. –