2013-11-19 2 views
2

эй я проверил несколько вопросов, и почти все вопросы были связаны с интернетом и в основном включали такие методы, как openConnection() и getInputStream(), но мой относится к медиа-магазину, поэтому я снова задаю этот вопрос здесь ... Я могу получить URI альбома, используя медиа-магазин и курсор, но я не знаю, как продолжить дальше thanx заранее.Как преобразовать URI (из медиастора) в изображение (растровое изображение)?

я попытался

Bitmap bitmap=null; 
      MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 


      byte[] rawArt = null; 

      BitmapFactory.Options bfo=new BitmapFactory.Options(); 
      mmr.setDataSource(string); 
      rawArt = mmr.getEmbeddedPicture(); 


      bitmap=BitmapFactory.decodeByteArray(rawArt, 0, rawArt.length, bfo); 

но не помогло

Редактировать Mediastore часть .......

columns = new String[]{ android.provider.MediaStore.Audio.Albums._ID, 
      android.provider.MediaStore.Audio.Albums.ALBUM, 
      MediaStore.Audio.Albums.ALBUM_ART }; 
      cursor = 

    getActivity().managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, 
       columns, null, null, null); 


       if(cursor != null){ 
        while(cursor.moveToNext()) { 
        SongDetails songs = new SongDetails(); 
        songs.song= cursor.getString(1); 
        songs.Path=cursor.getString(2); 
        //songs.Album=cursor.getString(0); 
        //songs.Artist=cursor.getString(1); 
        songdetails.add(songs); 
        }} 
       list=(GridView)container.findViewById(R.id.grid_view); 
       adapter=new LazyAdapter(songdetails); 

один такие URI:"/storage/sdcard0/Android/data/com.android.providers./media/albumthumbs/138216121805

+0

его Ури, а не URI. BitmapFactory + ContentResolver.openInputStream. – njzk2

+0

, пожалуйста, можете ли вы немного доработать? –

+0

Какой у вас адрес? и вы проверяли, является ли rawArt нулевым? – njzk2

ответ

2

Bitmap растровый = MediaStore.Images.Media.getBitmap (this.getContentResolver(), imageUri);

+0

Эй, спасибо за короткий ответ +1 за это, но изображения еще не были dsiplayed, поэтому я думаю, что мой проблема была что-то еще .. –

2

Самым простым решением является использование ContentResolver:

InputStream is = context.getContentResolver.openInputStream(uri); 
Bitmap bitmap = BitmapFactory.decodeStream(is); 

Или, ярлык:

Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri) 

Переменная context может быть контекст Activity, Service, приложение и т.д.

+0

Эй, спасибо за короткий ответ +1 за это, но изображения еще не были dsiplayed, поэтому я думаю, что моя проблема была чем-то другим. –

Смежные вопросы