zoukankan      html  css  js  c++  java
  • Android&读取Sdcard中的歌曲,ListView操作

    music.xml
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout    android:layout_width="fill_parent" 
     3     android:layout_height="wrap_content"
     4     android:orientation="horizontal"
     5     xmlns:android="http://schemas.android.com/apk/res/android">
     6     <ImageView    android:id="@+id/img"
     7         android:layout_width="wrap_content"
     8         android:layout_height="wrap_content"
     9         />
    10     <LinearLayout    android:layout_width="wrap_content"
    11         android:layout_height="wrap_content"
    12         android:orientation="vertical">
    13             <TextView    android:id="@+id/title"
    14                 android:layout_width="170px"
    15                 android:layout_height="wrap_content"
    16                 />
    17             <TextView    android:id="@+id/artist"
    18                 android:layout_width="wrap_content"
    19                 android:layout_height="150px"
    20                 />
    21         <TextView     android:id="@+id/album"
    22                 android:layout_width="wrap_content"
    23                 android:layout_height="150px"
    24                 />
    25     </LinearLayout>"
    26 </LinearLayout>
    activity_main.xml
     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:paddingBottom="@dimen/activity_vertical_margin"
     6     android:paddingLeft="@dimen/activity_horizontal_margin"
     7     android:paddingRight="@dimen/activity_horizontal_margin"
     8     android:paddingTop="@dimen/activity_vertical_margin"
     9     tools:context=".MainActivity"
    10     android:orientation="vertical" >
    11 
    12     <TextView
    13         android:layout_width="fill_parent"
    14         android:layout_height="wrap_content"
    15         android:text="歌曲列表" />
    16     <ListView    android:layout_width="wrap_content"
    17         android:layout_height="wrap_content"
    18         android:id="@+id/musiclist"/>
    19 </LinearLayout>
    MainActivity.java
     1 package com.zachary.simpleadapter;
     2 
     3 import java.util.ArrayList;
     4 import java.util.HashMap;
     5 import java.util.List;
     6 import java.util.Map;
     7 
     8 import android.app.Activity;
     9 import android.content.Intent;
    10 import android.database.Cursor;
    11 import android.os.Bundle;
    12 import android.provider.MediaStore;
    13 import android.util.Log;
    14 import android.view.Menu;
    15 import android.view.View;
    16 import android.widget.AdapterView;
    17 import android.widget.AdapterView.OnItemClickListener;
    18 import android.widget.ListView;
    19 import android.widget.SimpleAdapter;
    20 import android.widget.TextView;
    21 
    22 import com.zachary.mediaplayer.MediaPlayerService;
    23 
    24 public class MainActivity extends Activity {
    25     private HashMap<String, MusicInfo> MusicInfos;
    26     private ListView MusicList;
    27     final static String TAG = "LOGCAT";
    28     @Override
    29     protected void onCreate(Bundle savedInstanceState) {
    30         super.onCreate(savedInstanceState);
    31         setContentView(R.layout.activity_main);
    32         MusicInfos = new HashMap<String, MusicInfo>();
    33         MusicList = (ListView)findViewById(R.id.musiclist);
    34         Log.i(TAG, "begin to showList");
    35         showList();
    36         MusicList.setOnItemClickListener(
    37                 new OnItemClickListener() {
    38 
    39                     @Override
    40                     public void onItemClick(AdapterView<?> arg0, View arg1,
    41                             int arg2, long arg3) {
    42                         Log.i(TAG, "MusicList onItemClickListener");
    43                         String title = ((TextView)arg1.findViewById(R.id.title)).getText().toString();
    44                         Log.i(TAG, title);
    45                         MusicInfo nowSong = MusicInfos.get(title);
    46                         String path = nowSong.getUrl();
    47                         Log.i(TAG, path);
    48                             
    49                         Intent    intent = new Intent(MainActivity.this, MediaPlayerService.class);
    50                         intent.putExtra("path", path);
    51                         MainActivity.this.startService(intent);
    52                     }    
    53                 }
    54                     
    55                 );
    56     }
    57 
    58     @Override
    59     public boolean onCreateOptionsMenu(Menu menu) {
    60         // Inflate the menu; this adds items to the action bar if it is present.
    61         getMenuInflater().inflate(R.menu.main, menu);
    62         return true;
    63     }
    64     
    65     public void showList(){
    66         Cursor mAudioCursor = this.getContentResolver().query(
    67                 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
    68                 null,
    69                 null,
    70                 null,
    71                 MediaStore.Audio.AudioColumns.TITLE);
    72         List<Map<String,Object>> mListData = new ArrayList<Map<String, Object>>();
    73         for(int i=0; i<mAudioCursor.getCount(); i++) {
    74             mAudioCursor.moveToNext();
    75             MusicInfo mi = new MusicInfo( mAudioCursor.getString(mAudioCursor.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE)),
    76                     mAudioCursor.getString(mAudioCursor.getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST)),
    77                     mAudioCursor.getString(mAudioCursor.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM)),
    78                     mAudioCursor.getString(mAudioCursor.getColumnIndex(MediaStore.Audio.AudioColumns.DATA))
    79                     );
    80             HashMap<String, Object> nowMap = new HashMap<String, Object>();
    81             nowMap.put("img",R.drawable.ic_launcher );
    82             nowMap.put("title", mi.getTitle());
    83             nowMap.put("artist", mi.getArtist());
    84             nowMap.put("album", mi.getAlbum());
    85             mListData.add(nowMap);
    86             MusicInfos.put(mi.getTitle(),mi);
    87         }
    88         SimpleAdapter musicSA = new SimpleAdapter(
    89                 this, 
    90                 mListData,
    91                 R.layout.music,
    92                 new String[]{"img", "title", "artist", "album"},
    93                 new int[] {R.id.img, R.id.title, R.id.artist, R.id.album}
    94                 );
    95         MusicList.setAdapter(musicSA);
    96     }
    97 }
    MusicInfo.java
     1 package com.zachary.simpleadapter;
     2 
     3 /**
     4  * @author Zachary
     5  *
     6  */
     7 public class MusicInfo {
     8     private String title;
     9     private String artist;
    10     private String album;
    11     private String url;
    12     public MusicInfo(String title,  String artist, String album, String url){
    13         this.title = title;
    14         this.artist =artist;
    15         this.album = album;
    16         this.url = url;
    17     }
    18     
    19     public String getTitle() {
    20         return title;
    21     }
    22     public void setTitle(String title) {
    23         this.title = title;
    24     }
    25     
    26     public String getArtist() {
    27         return artist;
    28     }
    29     public void setArtist(String artist) {
    30         this.artist = artist;
    31     }
    32     public String getAlbum() {
    33         return album;
    34     }
    35     public void setAlbum(String album) {
    36         this.album = album;
    37     }
    38     public String getUrl() {
    39         return url;
    40     }
    41     public void setUrl(String url) {
    42         this.url = url;
    43     }
    44     
    45     @Override
    46     public String toString() {
    47         return "MusicInfo [title=" + title  + ", artist="
    48                 + artist + ", album=" + album +", url=" + url +", getClass()=" + getClass()
    49                 + "]";
    50     }
    51     
    52 }
    MusicPlayerSerivice.java
     1 package com.zachary.mediaplayer;
     2 
     3 import android.app.Service;
     4 import android.content.Intent;
     5 import android.media.MediaPlayer;
     6 import android.net.Uri;
     7 import android.os.IBinder;
     8 import android.util.Log;
     9 import android.widget.Toast;
    10 
    11 public class MediaPlayerService extends Service {
    12 
    13     private static final String TAG = "Media Player Service";
    14     private MediaPlayer player = null;
    15     @Override
    16     public IBinder onBind(Intent arg0) {
    17         // TODO Auto-generated method stub
    18         return null;
    19     }
    20     
    21     @Override
    22     public void onCreate() {
    23         Toast.makeText(this, "MediaPlayerService Created", Toast.LENGTH_LONG).show();
    24         Log.i(TAG, "onCreate");
    25         System.out.println("onCreate");
    26     }
    27     
    28     @Override
    29     public void onStart(Intent intent, int startId) {
    30         Toast.makeText(this, "MediaPlayerService Start", Toast.LENGTH_LONG).show();
    31         
    32         String path = intent.getStringExtra("path");
    33     
    34             Log.i(TAG, "onStart");
    35             System.out.println("onStart");
    36             Log.i(TAG, path);
    37             System.out.println(path);
    38             Uri playerUri = Uri.parse(path);
    39             if (player != null) { 
    40                 player.stop(); 
    41             } 
    42             player = MediaPlayer.create(MediaPlayerService.this, playerUri);
    43             player.start();
    44     }
    45     
    46     @Override
    47     public void onDestroy() {
    48         super.onDestroy();
    49         Toast.makeText(this, "MediaPlayerService Stoped", Toast.LENGTH_LONG).show();
    50         Log.i(TAG, "onDestory");
    51         System.out.println("onDestory");
    52         if(player != null) {
    53         player.release();
    54         player = null;
    55         }
    56     }
    57 
    58 }
  • 相关阅读:
    FTP(文件传输协议)工作原理
    Web测试和App测试有什么区别
    JMeter中文版用户手册
    shell常用命令
    RAID技术介绍和总结
    SQL Insert语句数据以以unicode码存储 解决存储数据出现乱码的问题
    IIS 允许无后缀文件访问的配置
    cocos2dx 背景用小尺寸图片滚动填充的方法
    (转)Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(详细教程) .
    大数据应用期末总评
  • 原文地址:https://www.cnblogs.com/wizzhangquan/p/3029465.html
Copyright © 2011-2022 走看看