2010-02-01 34 views
13

Bazı görüntü dosyaları vardır ve bu görüntü dosyalarından Uri'yi almak istiyorum. Kodumda sadece görüntü dosyalarının yolunu ve dosya adını biliyorum. Uri'yi yolundan ve dosya adından nasıl alabilirim? Ben aynı soru vardıResim dosyasından URI ismini alabilir miyim?

Uri uri = Uri.fromFile(file); 

cevap

42

, her zaman URI bir dönüştürebilirsiniz benim dosya gezgini aktivite ... ama dosya için contenturi sadece resim, ses ve video gibi mediastore verileri destekler tht gerekir .... Ben sdcard bir görüntü seçerek görüntü içerik uri almak için size veriyorum .... Bu kodu deneyin ... sizin için çalışacak olabilir ...

public static Uri getImageContentUri(Context context, File imageFile) { 
     String filePath = imageFile.getAbsolutePath(); 
     Cursor cursor = context.getContentResolver().query(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       new String[] { MediaStore.Images.Media._ID }, 
       MediaStore.Images.Media.DATA + "=? ", 
       new String[] { filePath }, null); 
     if (cursor != null && cursor.moveToFirst()) { 
      int id = cursor.getInt(cursor 
        .getColumnIndex(MediaStore.MediaColumns._ID)); 
      Uri baseUri = Uri.parse("content://media/external/images/media"); 
      return Uri.withAppendedPath(baseUri, "" + id); 
     } else { 
      if (imageFile.exists()) { 
       ContentValues values = new ContentValues(); 
       values.put(MediaStore.Images.Media.DATA, filePath); 
       return context.getContentResolver().insert(
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
      } else { 
       return null; 
      } 
     } 
    } 
+0

Teşekkürler. Aslında Uri değil URI'yi arıyorum, ama neredeyse aynı, bu yüzden çözüm bulabilirim. – skysign

+0

Ah, Android'e özgü Uri sınıfını kastettiğinizi bilmiyordum. Cevabımı da dahil etmek için güncelledim. –

+0

Cevabın güncellemesi için teşekkür ederiz. – skysign

2

: Android Uri sınıfını kullanmak istiyorsanız,

File file = new File(path + File.pathSeparator + filename); 
URI uri = file.toURI(); 

Veya: Bir File varsa

İlgili konular