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 读取,只能读取内存