如何在android中显示歌曲的缩略图?
我正在显示SD卡上的所有歌曲,包括标题、艺术家、专辑等信息 但是我对歌曲缩略图像有问题。如何获得歌曲缩略图 下面是我的代码如何在android中显示歌曲的缩略图?,android,android-mediaplayer,Android,Android Mediaplayer,我正在显示SD卡上的所有歌曲,包括标题、艺术家、专辑等信息 但是我对歌曲缩略图像有问题。如何获得歌曲缩略图 下面是我的代码 public class AndroidListMediaActivity extends ListActivity { SimpleCursorAdapter adapter; MediaPlayer myMediaPlayer; /** Called when the activity is first created. */ @Override p
public class AndroidListMediaActivity extends ListActivity {
SimpleCursorAdapter adapter;
MediaPlayer myMediaPlayer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] from = {
MediaStore.MediaColumns.TITLE};
int[] to = {
android.R.id.text1};
Cursor cursor = managedQuery(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null,
null,
null,
MediaStore.Audio.Media.TITLE);
adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, cursor, from, to);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Cursor cursor = adapter.getCursor();
cursor.moveToPosition(position);
String _id = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
int duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
Uri playableUri
= Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, _id);
myMediaPlayer = MediaPlayer.create(getBaseContext(), playableUri);
String msgMediaPlayer;
if(myMediaPlayer != null){
myMediaPlayer.start();
msgMediaPlayer = "Playing: " + playableUri + "\n";
}else{
msgMediaPlayer = "Cannot play: " + playableUri + "\n";
}
String info = msgMediaPlayer + "\n"
+ "_ID: " + _id + "\n"
+ "TITLE: " + title + "\n"
+ "ARTIST: " + artist + "\n"
+ "ALBUM: " + album + "\n"
+ "DURATION: " + duration/1000 + "s";
Toast.makeText(this, info, Toast.LENGTH_LONG).show();
}
}
使用下面的例子它的工作为我
public class Main extends ListActivity
{
String[] videoFileList = {
"/sdcard/Video/1.mp4",
"/sdcard/Video/2.mp4",
"/sdcard/Video/3.mp4",
"/sdcard/Video/5.mp4"
};
public class MyThumbnaildapter extends ArrayAdapter<String>
{
public MyThumbnaildapter(Context context, int textViewResourceId,String[] objects)
{
super(context, textViewResourceId, objects);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
// TODO Auto-generated method stub
View row = convertView;
if(row==null)
{
LayoutInflater inflater=getLayoutInflater();
row=inflater.inflate(R.layout.second_list_item, parent, false);
}
TextView textfilePath = (TextView)row.findViewById(R.id.FilePath);
textfilePath.setText(videoFileList[position]);
ImageView imageThumbnail = (ImageView)row.findViewById(R.id.Thumbnail);
Bitmap bmThumbnail;
if(new File(videoFileList[position]).exists())
{
bmThumbnail = ThumbnailUtils.createVideoThumbnail(videoFileList[position], MediaStore.Images.Thumbnails.MINI_KIND);
bmThumbnail=Bitmap.createScaledBitmap(bmThumbnail,150,150, true);
imageThumbnail.setImageBitmap(bmThumbnail);
textfilePath.setText(videoFileList[position]);
}
return row;
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setListAdapter(new MyThumbnaildapter(Main.this, R.layout.second_list_item, videoFileList));
}
public类主扩展ListActivity
{
字符串[]视频文件列表={
“/sdcard/Video/1.mp4”,
“/sdcard/Video/2.mp4”,
“/sdcard/Video/3.mp4”,
“/sdcard/Video/5.mp4”
};
公共类MyThumbnaildapter扩展了ArrayAdapter
{
公共MyThumbnaildapter(上下文上下文,int textViewResourceId,字符串[]对象)
{
超级(上下文、textViewResourceId、对象);
//TODO自动生成的构造函数存根
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图)
{
//TODO自动生成的方法存根
视图行=转换视图;
if(行==null)
{
LayoutInflater充气机=getLayoutInflater();
行=充气机。充气(R.layout.second\u list\u项,父项,false);
}
TextView textfilePath=(TextView)row.findViewById(R.id.FilePath);
textfilePath.setText(videoFileList[position]);
ImageView imageThumbnail=(ImageView)row.findViewById(R.id.thumnail);
位图缩略图;
如果(新文件(videoFileList[position])存在()
{
bmthumboil=ThumbnailUtils.createvideothumboil(videoFileList[position],MediaStore.Images.Thumbnails.MINI_-KIND);
bmThumbnail=Bitmap.createScaledBitmap(bmThumbnail,150150,true);
设置图像位图(BM缩略图);
textfilePath.setText(videoFileList[position]);
}
返回行;
}
}
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setListAdapter(新的MythumbNaildAdapter(Main.this,R.layout.second_list_项,videoFileList));
}
}试试这篇文章中发布的一个类似场景:可能是OP的重复,它要求从MediaStore显示歌曲缩略图,而不是视频缩略图!