2016-03-31 14 views
0

Ich bin (Anfänger Android) versuchen, den realen Pfad (zB: image_name.jpg etc) von Bild aus der Galerie von Benutzer ausgewählt.erhalten echten Pfad von Android URI nach der Auswahl Bild aus der Galerie

if (requestCode == SELECT_FILE) { 
     Uri selectedImage = data.getData(); 
     Bitmap bitmapImage; 
     try { 
       bitmapImage =decodeBitmap(selectedImage); 
       photoImage = (ImageView) findViewById(R.id.photoImage); 
       photoImage.setImageBitmap(bitmapImage); 
       photoName = (TextView) findViewById(R.id.designPhoto); 
       File thePath = new File(getRealPathFromURI(selectedImage)); 
       photoName.setText(getRealPathFromURI(selectedImage)); 
     } catch (Exception e) { 
       e.printStackTrace(); 
     } 
} 


private String getRealPathFromURI(Uri contentURI) { 

    String thePath = "no-path-found"; 
    String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
    Cursor cursor = getContentResolver().query(contentURI, filePathColumn, null, null, null); 
    if(cursor.moveToFirst()){ 
     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     thePath = cursor.getString(columnIndex); 
    } 
    cursor.close(); 
    return thePath; 
} 

aber ich bin nicht in den photoName Textview immer alles versucht, auch viele Codes und Führer, aber ohne Erfolg.

aber als ich versuchte, es mit

photoName.setText(selectedImage.getPath()); 

Ich erhalte

/document/image:n (where n=any numbers) ex:/document/image:147 

aber ich mag einen richtigen Dateinamen oder Pfad ab: image_name.jpg oder /path/image_name.png

es von den letzten 3 versuchen, Stunden, es wäre toll, wenn mir jemand helfen könnte. Demütigen Dank im Voraus.

+1

Warum übernehmen Sie, dass es „echten Weg“ hat? Warum verwenden Sie nicht 'MediaStore.Images.Media.DISPLAY_NAME'? – Selvin

+0

weil ich neu bei Android-Codierung bin, nachdem ich 3 Stunden verschwendet habe, obwohl ich Frage an SO wo und warum ich falsch machen muss –

+0

@Selvin Sir Vielen Dank 'MediaStore.Images.Media.DISPLAY_NAME' funktioniert wie Charme ... –

Antwort

1

Ich habe es mit Arbeits

MediaStore.Images.Media.DISPLAY_NAME 

aktualisiert und Arbeits Code könnte anderen helfen:

private String getRealPathFromURI(Uri contentURI) { 

    String thePath = "no-path-found"; 
    String[] filePathColumn = {MediaStore.Images.Media.DISPLAY_NAME}; 
    Cursor cursor = getContentResolver().query(contentURI, filePathColumn, null, null, null); 
    if(cursor.moveToFirst()){ 
     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     thePath = cursor.getString(columnIndex); 
    } 
    cursor.close(); 
    return thePath; 
} 
Verwandte Themen