Android如何扫描sdcard中的音乐文件,并加载到ListView中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android如何扫描sdcard中的音乐文件,并加载到ListView中?相关的知识,希望对你有一定的参考价值。

初学者,不是很懂。希望大神讲解一下。希望能提供源码。谢谢啦。

android系统会自动把添加到SD卡上的歌曲添加到一个SQLite数据库里 我们要做的就是把歌曲的信息从这个数据库里查询出来
查询SD卡上的mp3歌曲信息
Cursor mAudioCursor = this.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null,// 字段 没有字段 就是查询所有信息 相当于SQL语句中的 “ * ”
null, // 查询条件
null, // 条件的对应?的参数
MediaStore.Audio.AudioColumns.TITLE);// 排序方式
// 循环输出歌曲的信息
List<Map<String, Object>> mListData = new ArrayList<Map<String, Object>>();
for (int i = 0; i < mAudioCursor.getCount(); i++)
mAudioCursor.moveToNext();
// 找到歌曲标题和总时间对应的列索引
int indexTitle = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE);//歌名
int indexARTIST = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST);//艺术家
int indexALBUM = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM);//专辑

String strTitle = mAudioCursor.getString(indexTitle);
String strARTIST = mAudioCursor.getString(indexARTIST);
String strALBUM = mAudioCursor.getString(indexALBUM);

HashMap<String, Object> nowMap = new HashMap<String, Object>();
nowMap.put("SongName", strTitle + "---" + strARTIST
+ "---" + strALBUM);
mListData.add(nowMap);

加载到ListView里就很简单了
请采纳。追问

如何加载到ListView中,不懂。

参考技术A 一种是用一楼的方法,还有一种是自己写一个方法递归扫描SD卡下的所有文件和文件夹,是音乐文件就添加到一个List里面。显示到ListView可以写一个adapter,adapter的getView方法里加载自己的单行布局。 参考技术B 上面的哥们已经找到MP3信息了,你在listview的适配器里getview()方法中获取mListData里的数据就好了

裁剪图像并保存到 sdcard (Android) 中的特定文件夹?

【中文标题】裁剪图像并保存到 sdcard (Android) 中的特定文件夹?【英文标题】:cropping image and save to specific folder in sdcard (Android)? 【发布时间】:2013-01-16 13:52:52 【问题描述】:

我的图像已被裁剪。我想将该图像保存到文件夹(sdcard)...我已经完成了裁剪图像并显示到 imageview,但我的问题是,我不知道如何将图像裁剪保存到 sdcard?

这是我的代码已成功裁剪图像..

Bundle extras = data.getExtras();

if (extras != null)                
    Bitmap photo = extras.getParcelable("data");
    mImageView.setImageBitmap(photo);

我可以在哪里添加代码来保存已裁剪的图像?

【问题讨论】:

【参考方案1】:

试试这个方法:

 Bundle m_extras = data.getExtras();
 // get the cropped bitmap
 Bitmap m_thePic = m_extras.getParcelable("data");
 String m_path = Environment.getExternalStorageDirectory().toString();
File m_imgDirectory = new File(m_path + "/Images/");
if (!m_imgDirectory.exists()) m_imgDirectory.mkdir();
OutputStream m_fOut = null;
File m_file = new File(m_path);
m_file.delete();
String m_fileid = System.currentTimeMillis() + "";
m_file = new File(m_path, "/Images/" + m_fileid + ".png");  
try

    if (!m_file.exists()) m_file.createNewFile();
    m_fOut = new FileOutputStream(m_file);      
    Bitmap m_bitmap = m_thePic.copy(Bitmap.Config.ARGB_8888, true);
    m_bitmap.compress(Bitmap.CompressFormat.PNG, 100, m_fOut);
    m_fOut.flush();
    m_fOut.close();
    MediaStore.Images.Media.insertImage(getContentResolver(),
            m_file.getAbsolutePath(), m_file.getName(), m_file.getName());

catch (Exception p_e)


在清单文件中添加以下权限。

  <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

【讨论】:

欢迎 .. :) 总是乐于提供帮助 :)

以上是关于Android如何扫描sdcard中的音乐文件,并加载到ListView中?的主要内容,如果未能解决你的问题,请参考以下文章

如何捕捉 sdcard 中的所有歌曲以及音乐等 sdcard 文件夹中的所有歌曲

Cordova:Android 上的 sdcard 访问不起作用

裁剪图像并保存到 sdcard (Android) 中的特定文件夹?

Android Studio 音乐播放器无法从 sdcard 读取,只能读取内存

android 生成的二维码图片如何保存到sdcard? 这个我也不知道呢,能否告知

android 生成的二维码图片如何保存到sdcard?