除了可以用Drawable里的资源,可以直接设置图片的地址,在显示音乐封面图片时无意间发现的,本来还在想要怎么转换为Bitamp再设置进去的,嘿嘿
相信布局就不需要了
07-12 09:07:57.284 6887-6887/? I/main: initView: ./storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1468314288602
07-12 09:07:57.284 6887-6887/? I/main: 1
07-12 09:07:57.284 6887-6887/? I/main: 1
打出的Log在上面
package cn.ucai.provider; import android.content.ContentUris; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.ImageView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import java.util.ArrayList; import java.util.HashMap; public class MainActivity extends AppCompatActivity { ArrayList<Music> musicList; ArrayList<HashMap<String, String>> musicMapList; ImageView mivCover; TextView mtvTitle; ListView mlvMusic; String TAG = "main"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getMusic(); initView(); } private void initView() { mlvMusic = (ListView) findViewById(R.id.list); musicMapList = new ArrayList<>(); for (Music m : musicList) { HashMap<String, String> music = new HashMap<>(); music.put("cover", m.getCover()); music.put("title", m.getName()); Log.i("main", "initView: ."+m.getCover()); musicMapList.add(music); } Log.i("main", musicList.size() + ""); Log.i("main", musicMapList.size() + ""); SimpleAdapter mAdapter = new SimpleAdapter(this,musicMapList , R.layout.music_item, new String[]{"cover","title"}, new int[]{ R.id.ivCover,R.id.tvTitle}); mlvMusic.setAdapter(mAdapter); } public void getMusic() { musicList = new ArrayList<>(); String[] s = new String[]{ MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.ALBUM_ID }; Cursor c = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, s, null, null, null); while (c.moveToNext()) { Music music = new Music(); music.setId(c.getInt(c.getColumnIndex(MediaStore.Audio.Media._ID))); music.setName(c.getString(c.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME))); music.setArtister(c.getString(c.getColumnIndex(MediaStore.Audio.Media.ARTIST))); music.setDuration(c.getString(c.getColumnIndex(MediaStore.Audio.Media.DURATION))); music.setCover(getCover(c.getInt(c.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID)))); musicList.add(music); } } String getCover(int album_id) { Uri uri = MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI; Uri.Builder builder = uri.buildUpon(); Uri.Builder newBuilder = ContentUris.appendId(builder, album_id); Uri newUri = newBuilder.build(); String[] projection = new String[]{MediaStore.Audio.Albums.ALBUM_ART}; Cursor c = this.getContentResolver().query(newUri, projection, null, null, null); if (c == null) { return null; } else if (c.moveToNext()) { return c.getString(c.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART)); } return null; } }