Я искал это целую вечность, и сейчас я нахожусь в такой ситуации, когда не вижу другого выбора, кроме как обратиться за помощью.
Я пытаюсь отобразить обложку альбома в медиаплеере, который использую. У меня почти все остальное полностью функционально, включая другие метаданные, воспроизведение альбомов (по сравнению с отдельными треками) и т. Д.
Мой код на данный момент выглядит следующим образом:
public View getView(int position, View convertView, ViewGroup parent) {
System.gc();
View cellLayout = getLayoutInflater().inflate(R.layout.albumbrowsercell, null);
ImageView album_art = (ImageView) cellLayout.findViewById(R.id.albums_album_cover);
TextView album_title = (TextView) cellLayout.findViewById(R.id.albums_album_title);
TextView artist_title = (TextView) cellLayout.findViewById(R.id.albums_artist_title);
String albumName;
String artistName;
int albumID;
album_column_index = albumCursor.getColumnIndexOrThrow(MediaStore.Audio.Albums._ID);
albumCursor.moveToPosition(position);
albumID = albumCursor.getInt(album_column_index);
Uri sArtworkUri = Uri.parse(MediaStore.Audio.Albums.ALBUM_ART);
Uri uri = ContentUris.withAppendedId(sArtworkUri, albumID);
album_art.setImageURI(uri);
//code to do set text above etc.
return cellLayout;
Logcat выдает ошибки, подобные этим:
I / System.out (12781): с ошибкой resolUri на неверном растровом изображении uri: album_art / 224
Следовательно, проблема, кажется, с appendedID. Хотя я не знаю, как еще это назвать (я даже прибег к попытке случайных чисел, чтобы посмотреть, смогу ли я набрать одно).
Возможно, я совершаю фундаментальную ошибку. До сих пор я проводил большую часть своего времени, изучая, как работать с контент-провайдерами и т. Д., И я до сих пор не уверен на 50% в них (никогда раньше не занимался базами данных или Android).
Кроме того, это просто я или документация Android, по крайней мере, по этой теме, довольно мусор?