android获取音乐文件的内置专辑图片实现思路及代码

 更新时间:2013年06月03日 16:31:27   作者:  
获取音乐文件的内置专辑图片这是在播放音乐时的一个很不错的功能,下面与大家分享下具体的实现思路,有类似需求的朋友可以参考下哈
代码和注释如下:
复制代码 代码如下:

private Cursor getCursor(String filePath) {
String path = null;
Cursor c = getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
// System.out.println(c.getString(c.getColumnIndex("_data")));
if (c.moveToFirst()) {
do {
// 通过Cursor 获取路径,如果路径相同则break;
System.out.println("////////"+filePath);
path = c.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
System.out.println("?????????"+path);
// 查找到相同的路径则返回,此时cursorPosition 便是指向路径所指向的Cursor 便可以返回了
if (path.equals(filePath)) {
// System.out.println("audioPath = " + path);
// System.out.println("filePath = " + filePath);
// cursorPosition = c.getPosition();
break;
}
} while (c.moveToNext());
}
// 这两个没有什么作用,调试的时候用
// String audioPath = c.getString(c
// .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
//
// System.out.println("audioPath = " + audioPath);
return c;
}
private String getAlbumArt(int album_id) {
String mUriAlbums = "content://media/external/audio/albums";
String[] projection = new String[] { "album_art" };
Cursor cur = this.getContentResolver().query(
Uri.parse(mUriAlbums + "/" + Integer.toString(album_id)),
projection, null, null, null);
String album_art = null;
if (cur.getCount() > 0 && cur.getColumnCount() > 0) {
cur.moveToNext();
album_art = cur.getString(0);
}
cur.close();
cur = null;
return album_art;
}
private void getImage(){
Cursor currentCursor = getCursor("/mnt/sdcard/"+mp3Info);
int album_id = currentCursor.getInt(currentCursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
String albumArt = getAlbumArt(album_id);
Bitmap bm = null;
if (albumArt == null) {
mImageView.setBackgroundResource(R.drawable.staring);
} else {
bm = BitmapFactory.decodeFile(albumArt);
BitmapDrawable bmpDraw = new BitmapDrawable(bm);
mImageView.setImageDrawable(bmpDraw);
}
}

相关文章

  • Android实现回弹ScrollView的原理

    Android实现回弹ScrollView的原理

    这篇文章主要为大家详细介绍了Android实现回弹ScrollView的原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Android实现对图片放大、平移和旋转的功能

    Android实现对图片放大、平移和旋转的功能

    现在很多App在查看一张图片的原图时,都会支持图片的手势缩放,手势平移以及图片旋转的操作。那么今天小编就来教大家去简单的实现图片的放大、平移、旋转的操作,有需要的可以参考借鉴。
    2016-08-08
  • Kotlin select使用方法介绍

    Kotlin select使用方法介绍

    select是Kotlin 1.6中的特性,即选择最快的结果。select与async、Channel结合使用,可以大大提高程序的响应速度,还可以提高程序的灵活性、扩展性
    2022-11-11
  • android实现歌词自动滚动效果

    android实现歌词自动滚动效果

    这篇文章主要为大家详细介绍了android实现歌词自动滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Android  listView 绘制表格实例详解

    Android listView 绘制表格实例详解

    这篇文章主要介绍了Android listView 绘制表格实例详解的相关资料,这里附有实例代码及实现效果图,利用listView 绘制表格提供实现思路,需要的朋友可以参考下
    2017-01-01
  • android开发去除标题栏的方法

    android开发去除标题栏的方法

    这篇文章主要介绍了android开发去除标题栏的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Android入门计算器编写代码

    Android入门计算器编写代码

    这篇文章主要为大家详细介绍了Android入门计算器编写代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • Android studio实现菜单效果

    Android studio实现菜单效果

    这篇文章主要为大家详细介绍了Android studio实现菜单效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Android Activity启动流程刨析

    Android Activity启动流程刨析

    Activity作为Android四大组件之一,他的启动绝对没有那么简单。这里涉及到了系统服务进程,启动过程细节很多,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
    2022-08-08
  • Android编程滑动效果之Gallery仿图像集浏览实现方法

    Android编程滑动效果之Gallery仿图像集浏览实现方法

    这篇文章主要介绍了Android编程滑动效果之Gallery仿图像集浏览实现方法,结合实例形式详细分析了Gallery浏览图片的原理、步骤与相关实现技巧,需要的朋友可以参考下
    2016-02-02

最新评论