Android开发本地及网络Mp3音乐播放器(十八)新下载歌曲加载准备SdcardSearchToList

扫描本地文件加载到item

不限于应用到音乐播放器,其他Android工程,也可以使用SdcardSearchToList

其他Android工程也可以使用,我现在做了很小的Demo

后续将博文,将在播放器里,加入这一功能,来实现刚下载好的音乐,加载到播放器

这个Demo的源码下载:

http://download.csdn.net/album/detail/3105

名称为:SdcardSearchToList,如果没有显示,可能还没有审核完成

不下载也可以,因为只有1个java文件,2个xml文件,非常小

截止到目前的源码下载:

http://download.csdn.net/album/detail/3105

(最新的,请下载最后一个,本博文对应版本2.1;如果需要逐步实现的过程,请下载所有)

实现效果如图:

实现代码如下:

GetListActivity如下:(主Activity)

package com.iwanghang.sdcardsearchtolist;

import android.os.Bundle;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;

/**
 * 不要忘记加权限
 * <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
 */
public class GetListActivity extends Activity {

    private Button myBtn = null;
    private ListView lv = null;
    private SimpleAdapter sa = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_get_list);

        lv = (ListView)findViewById(R.id.listv);

        String[] from = {"text_content"};
        int[] to = {R.id.myView1};
        sa = new SimpleAdapter(this, getList(), R.layout.itemlist, from, to);

        myBtn = (Button)findViewById(R.id.myButton);
        myBtn.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                lv.setAdapter(sa);
            }
        });

    }

    public List<Map<String, Object>> getList()
    {
        List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
        String sDStateString = Environment.getExternalStorageState();
        if(sDStateString.equals(Environment.MEDIA_MOUNTED))
        {
            //File SDFile = Environment.getExternalStorageDirectory();
            //File sdPath = new File(SDFile.getAbsolutePath());
            File sdPath = new File(Environment.getExternalStorageDirectory() + "/drm_music");
            System.out.println("GetListActivity.List.sdPath = " + sdPath );
            System.out.println("GetListActivity.List.listFiles = " + sdPath.listFiles() );
            if(sdPath.listFiles().length > 0)
            {
                for(File file : sdPath.listFiles())
                {
                    Map<String, Object> map = new HashMap<String, Object>();
                    map.put("text_content", file.getName());
                    list.add(map);
                    System.out.println("name-->"+file.getName());
                }
            }
        }
        return list;
    }

    //其中,getList()用于扫描本地文件,获得文件的名字;为ListView设置一个适配器,将扫描到的文件显示在ListView上,这里需要注意,适配器的后面两个参数都是数组。
}

activity_get_list.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.iwanghang.sdcardsearchtolist.GetListActivity"
    android:orientation="vertical">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="获取本地文件信息" />

    <Button
        android:id="@+id/myButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="扫描" />
    <ListView
        android:id="@+id/listv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scrollbars="vertical" />

</LinearLayout>

itemlist.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lvitem"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns ="*">

    <TableRow>
        <TextView
            android:id="@+id/myView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </TextView>
        <TextView
            android:id="@+id/myView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
        </TextView>
        <TextView
            android:id="@+id/myView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </TextView>
    </TableRow>

</TableLayout>
时间: 2024-08-09 22:03:13

Android开发本地及网络Mp3音乐播放器(十八)新下载歌曲加载准备SdcardSearchToList的相关文章

Android开发本地及网络Mp3音乐播放器(十五)网络音乐及歌词下载功能实现

实现功能: 实现网络音乐歌词下载功能(下载音乐的同时,下载对应歌词) 下载好的歌词目前不在播放器内,可以通过文件浏览器查看. 后续将博文,将实现本地音乐歌词下载和已下载音乐扫描功能. 因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐.下载音乐.下载歌词)均无法保证时效性,建议,尽快下载和练习:如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码. 截止到目前的源码下载: http://download.csdn.net/album/

Android开发本地及网络Mp3音乐播放器(十六)歌词显示及滚动事件实现、ViewPager使用

实现功能: 歌词显示及滚动事件实现 ViewPager使用 后续将博文,将实现已下载音乐扫描功能和已存在歌曲歌词下载. 因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐.下载音乐.下载歌词)均无法保证时效性,建议,尽快下载和练习:如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码. 截止到目前的源码下载: http://download.csdn.net/album/detail/3105 (最新的,请下载最后一个,本博文对应版本

Android开发本地及网络Mp3音乐播放器(十)最近播放界面与数据保存更新

实现功能: 实现MyLoveMusicActivity(音乐收藏界面) 实现MyRecordMusicActivity(最近播放界面) 实现MyMusicListFragment(本地音乐界面)ItemClick事件发生后,切换到PlayActivity(独立音乐播放界面)只播放 本地音乐. 实现MyLoveMusicActivity(音乐收藏界面)ItemClick事件发生后,切换到PlayActivity(独立音乐播放界面)只播放 音乐收藏. 实现MyRecordMusicActivity(

Android开发本地及网络Mp3音乐播放器(十四)网络音乐下载功能实现

实现功能: 实现网络音乐搜索功能 实现网络音乐下载功能 下载好的音乐目前不在播放器内,可以通过文件浏览器查看. 后续将博文,将实现歌词和下载音乐扫描功能. 经过将近4天,才发布这一篇博客,明显更新博客速度变慢了,因为没有自己的音乐服务器,网络上的音乐网站在这边博客发表的2016年5月已经很难找到免费且在线下载的了,就算找到解析也是一个难题.如果你在练习同样功能的Demo,请尽快下载练习,因为博主也无法保证我Demo下载功能时效性,因为我解析的音乐网站可能分分钟修改网页源码!!! 截止到目前的源码

Android开发本地及网络Mp3音乐播放器(十二)创建NetMusicListAdapter、SearchResult显示网络音乐列表

实现功能: 实现NetMusicListAdapter(网络音乐列表适配器) 实现SearchResult(搜索音乐对象) 使用Jsoup组件请求网络,并解析音乐数据,并,音乐数据加载到列表中 实现FooterView 截止到目前的源码下载: http://download.csdn.net/detail/iwanghang/9507635 Jsoup组件导入: AndroidStudio简单快速导入GitHub中的第三方组件 : http://blog.csdn.net/iwanghang/a

Android开发本地及网络Mp3音乐播放器(十九)通知媒体库更新刚下载的MP3

实现功能: 通知媒体库更新 纠结了几天,百度到一个方法,可以在安卓4.4,通知媒体库更新. 媒体库更新了,重新打开APP,就可以看到新的歌曲,但这样还是不完善. 后续将博文,将实现 下载音乐成功后,通更新媒体库后,更新本地音乐列表. 因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐.下载音乐.下载歌词)均无法保证时效性,建议,尽快下载和练习:如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码. 截止到目前的源码下载: http:/

Android开发本地及网络Mp3音乐播放器(九)音乐收藏与列表切换

实现功能: 使用快速开发框架xUtils中的DbUtils模块,为音乐收藏功能做准备 实现PlayActivity(独立音乐播放界面)收藏.取消收藏按钮 实现MainActivity(主界面)菜单选择事件进入MyLoveMusicActivity(音乐收藏界面) 实现本地音乐列表与音乐收藏列表切换功能 (目前源码,只实现了音乐收藏列表,菜单中最近播放列表后续会进行补充) 截止到目前的源码下载: http://download.csdn.net/detail/iwanghang/9504916 x

Android开发本地及网络Mp3音乐播放器(十七)已存在歌曲歌词下载

实现功能: 已存在歌曲歌词下载 后续将博文,将实现已下载音乐扫描功能. 因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐.下载音乐.下载歌词)均无法保证时效性,建议,尽快下载和练习:如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码. 截止到目前的源码下载: http://download.csdn.net/album/detail/3105 (最新的,请下载最后一个,本博文对应版本2.2 :如果需要逐步实现的过程,请下载所有)

Android开发本地及网络Mp3音乐播放器(八)状态存取与界面滑动

实现功能: 退出应用时,保存歌曲位置(也就是当前是第几首歌曲) 退出应用时,保存播放模式(也就是用户设置的是顺序播放/随机播放/单曲循环) 进入应用时,读取歌曲位置 进入应用时,读取播放模式 实现PlayActivity(独立音乐播放界面)的专辑图片layout滑动,滑动后展示歌词layout (目前源码,只实现了专辑图片layout与歌词layout,歌词layout的信息填充后续会进行补充) 截止到目前的源码下载: http://download.csdn.net/detail/iwangh