Android之把sdcard中的MP3文件显示在界面上

利用IOS镜像文件浏览器在模拟器镜像文件中添加音乐文件
这里写图片描述

把sdcard中的MP3文件显示在界面上

1、上传音乐文件到sdcard中

private String music_path = "/mnt/sdcard/Music";//音乐文件的路径
//读取音乐文件
public void loadMp3(){
File file = new File(music_path);//实例化文件
String[] fileNames = file.list();//返回指定目录下所有的文件名

}

2、利用java的IO知识吧MP3音乐文件名读取出来,放在一个集合中

  private List<String> mp3list = new ArrayList<String>();//文件名有多个要建一个集合 
   //读取音乐文件
    public void loadMp3(){
        File file = new File(music_path);//实例化文件
        String[] fileNames = file.list();//返回指定目录下所有的文件名

        //对文件名的数组进行迭代
        for(String name : fileNames){
            //需要对文件名进行过滤
            if(name.endsWith(".mp3")){//是否以指定的后缀名结束

                mp3list.add(name);//吧文件名添加到集合中去
            }
        } 

3、创建一个ListView控件,用来显示装音乐文件名集合的内容

<ListView
        android:id="@+id/mp3list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

//数据适配器用于把list的数据显示在ListView ArrayAdapter adapter = new ArrayAdapter(Context, resource, textViewResourceId, objects)context上下文表示在那个控件中显示这个内容用this代替
resource 资源文件意思是我要把这个list内容显示在控件的某个地方
如此的话就得指定某个样式来对显示的内容进行控制
在Layout目录下新建一个xml文件采用相对布局就好了里面添加一个TextView控件

这里写图片描述

<TextView
        android:id="@+id/mp3Name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15sp"
        />

这时resource可以用R.layout.list_items代替了
textViewResourceId就用R.id.mp3Name代替
mp3list就代替objects

//设置数据适配器
lv.setAdapter(adapter);
loadMp3();//调用加载音乐文件函数
打开模拟器运行app程序

这里写图片描述
//对文件名进行截取 去掉后缀
name = name.substring(0,name.lastIndexOf(“.”));
mp3list.add(name);//吧文件名添加到集合中去
再次运行程序
这里写图片描述
Activity程序完整代码:

package com.example.mp3player;


import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class MainActivity extends Activity {

    private String music_path = "/mnt/sdcard/music";//音乐文件的路径
    private List<String> mp3list = new ArrayList<String>();//文件名有多个要建一个集合
    private ListView lv = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lv = (ListView) findViewById(R.id.mp3list);
        loadMp3();//调用加载音乐文件函数
        //数据适配器用于把list的数据显示在ListView控件中
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_items, R.id.mp3Name, mp3list);
        //设置数据适配器
        lv.setAdapter(adapter);

    }

    //读取音乐文件
    public void loadMp3(){
        File file = new File(music_path);//实例化文件
        String[] fileNames = file.list();//返回指定目录下所有的文件名

        //对文件名的数组进行迭代
        for(String name : fileNames){
            //需要对文件名进行过滤
            if(name.endsWith(".mp3")){//是否以指定的后缀名结束
                //对文件名进行截取 去掉后缀
                name = name.substring(0,name.lastIndexOf("."));
                mp3list.add(name);//吧文件名添加到集合中去
            }
        }

    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值