2016-04-12 22 views
2

i kodresim seçin takdirde boş

Uri filePath = data.getData(); 
String[] filePathColumn = {MediaStore.Images.Media.DATA, 
        MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.MIME_TYPE}; 
      Cursor cursor = 
        mCon.getContentResolver().query(filePath, filePathColumn, null, null, null); 

alttan Galeriden görüntü alma ama dosyadan görüntü seçtiğinizde imleç her zaman null bazı cihazlarda keşfetmek ama am i aynı görüntüyü seçerseniz galeri uygulaması işe yarıyor ... neden böyle?

cevap

5

Bu kodu

private String uriToFilename(Uri uri) { 
     String path = null; 

     if (Build.VERSION.SDK_INT < 11) { 
      path = RealPathUtil.getRealPathFromURI_BelowAPI11(this, uri); 
     } else if (Build.VERSION.SDK_INT < 19) { 
      path = RealPathUtil.getRealPathFromURI_API11to18(this, uri); 
     } else { 
      path = RealPathUtil.getRealPathFromURI_API19(this, uri); 
     } 

     return path; 
    } 

RealOathUtil.java onactivtyResult Şimdi

public class RealPathUtil { 
    @SuppressLint("NewApi") 
    public static String getRealPathFromURI_API19(Context context, Uri uri) { 
     Log.e("uri", uri.getPath()); 
     String filePath = ""; 
     if (DocumentsContract.isDocumentUri(context, uri)) { 
      String wholeID = DocumentsContract.getDocumentId(uri); 
      Log.e("wholeID", wholeID); 
// Split at colon, use second item in the array 
      String[] splits = wholeID.split(":"); 
      if (splits.length == 2) { 
       String id = splits[1]; 

       String[] column = {MediaStore.Images.Media.DATA}; 
// where id is equal to 
       String sel = MediaStore.Images.Media._ID + "=?"; 
       Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
         column, sel, new String[]{id}, null); 
       int columnIndex = cursor.getColumnIndex(column[0]); 
       if (cursor.moveToFirst()) { 
        filePath = cursor.getString(columnIndex); 
       } 
       cursor.close(); 
      } 
     } else { 
      filePath = uri.getPath(); 
     } 
     return filePath; 
    } 

    @SuppressLint("NewApi") 
    public static String getRealPathFromURI_API11to18(Context context, Uri contentUri) { 
     String[] proj = {MediaStore.Images.Media.DATA}; 
     String result = null; 
     CursorLoader cursorLoader = new CursorLoader(
       context, 
       contentUri, proj, null, null, null); 
     Cursor cursor = cursorLoader.loadInBackground(); 
     if (cursor != null) { 
      int column_index = 
        cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
      cursor.moveToFirst(); 
      result = cursor.getString(column_index); 
     } 
     return result; 
    } 

    public static String getRealPathFromURI_BelowAPI11(Context context, Uri contentUri) { 
     String[] proj = {MediaStore.Images.Media.DATA}; 
     Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null); 
     int column_index 
       = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } 
} 

(yaratmak) Bu

Uri selectedImageUri = data.getData(); 
String selectedImagePath = uriToFilename(selectedImageUri); 
+0

Bu nasıl ı getlealPathFromURI_API19 içinde url – andro

+0

alabilirim her zaman nasıl giderim ben nasıl tüm yolu coz dosya yolunu istiyorum coz dosya yolu istiyorum – andro

+0

ben bu pdf mime bu mehtod – andro

0

Bunu denemelisiniz.

Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
+0

Ben Intent intent kullanıyorum = new Intent(); intent.setType ("*/*"); intent.setAction (Intent.ACTION_GET_CONTENT); startActivityForResult (Intent.createChooser (niyet, "Resim Seç"), PICK_IMAGE_REQUEST); – andro

0

deneyin thi kullanmak deneyin s kodu.

galeriyi açmak için: Bu size yardımcı olabilir

public String getPath(Uri uri) { 
    String[] projection = {MediaStore.Images.Media.DATA}; 
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null); 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 
    return cursor.getString(column_index); 
} 

Hope:

Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_PICK); 
    startActivityForResult(Intent.createChooser(intent, "Complete action using"), 1); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 1 && resultCode == RESULT_OK) { 
     Uri selectedImageUri = data.getData(); 
     mImagePath = getPath(selectedImageUri); 
     mBitmap = BitmapFactory.decodeFile(mImagePath); 
     mProfilePic.setImageBitmap(mBitmap); 
    } 
} 

görüntünün gerçek yolu almak için.

+0

Bu kodun nope'sında dosya isminden bir resim seçtiyseniz, imleç null olur – andro

+0

Bu kodu denediniz mi? – Mrunal

+0

bu aynı cod ei qus – andro

İlgili konular