压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

安卓實(shí)現(xiàn)讀取手機(jī)內(nèi)存中的所有音樂

  讀取手機(jī)內(nèi)存中的音樂信息需要做如下幾步:

  1)創(chuàng)建一個(gè)XML文件,存放獲取到的信息,使用ListView控件

  2)創(chuàng)建一個(gè)新的XML文件,對(duì)LIstView中的item對(duì)象進(jìn)行布局

  3)需要?jiǎng)?chuàng)建一個(gè)Music類用于存放需要獲取的Music的主要信息

  4)需要?jiǎng)?chuàng)建一個(gè)幫助類,用于獲取手機(jī)中的音樂信息,并通過一個(gè)集合類傳遞獲取到的信息

  5)創(chuàng)建一個(gè)自定義適配器,用于加載ListView的每個(gè)子Item

  6)實(shí)現(xiàn)對(duì)數(shù)據(jù)的加載,并返回到用戶界面

  主要的代碼實(shí)現(xiàn)如下:

  一、幫助類模塊

  public ArrayList<Object> getMusic(Context context) {

  arrayList = new ArrayList<Object>();

  resolver = context.getContentResolver();

  cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,

  null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

  if (cursor != null) {

  while (cursor.moveToNext()) {

  musicInfo = new MusicInfo();

  musicInfo.setSinger_Name(cursor.getString(cursor

  .getColumnIndex(MediaStore.Audio.Media.ARTIST)));// 歌手名

  musicInfo.setSong_Name(cursor.getString(cursor

  .getColumnIndex(MediaStore.Audio.Media.TITLE)));// 歌曲名

  musicInfo.setSong_size(FormatChange.formatSize(cursor

  .getInt(cursor

  .getColumnIndex(MediaStore.Audio.Media.SIZE))));// 歌曲的大小

  musicInfo

  .setSong_time(FormatChange.toTime(cursor.getInt(cursor

  .getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION))));// 歌曲時(shí)間

  musicInfo.setUrl(cursor.getString(cursor

  .getColumnIndex(MediaStore.Audio.Media.DATA)));

  arrayList.add(musicInfo);

  }

  }

  cursor.close();

  return arrayList;

  }

  我是用普通方法做的,也可以使用靜態(tài)實(shí)現(xiàn)。

  二、適配器模塊

  private ArrayList<Object> arrayList;

  private Context context;

  private TextView music_singer,music_name,music_size;

  private MusicInfo musicInfo;

  public Music_adapter(Context context,ArrayList<Object> arrayList){

  this.context=context;

  this.arrayList=arrayList;

  }

  @Override

  public int getCount() {

  return arrayList.size();

  }

  @Override

  public Object getItem(int position) {

  return arrayList.get(position);

  }

  @Override

  public long getItemId(int id) {

  return id;

  }

  @Override

  public View getView(int position, View view, ViewGroup arg2) {

  if (view==null) {

  view=LayoutInflater.from(context).inflate(R.layout.music_format,null);

  }

  music_name=(TextView) view.findViewById(R.id.music_name);

  music_singer=(TextView) view.findViewById(R.id.music_singer);

  music_size=(TextView) view.findViewById(R.id.music_size);

  musicInfo=(MusicInfo) arrayList.get(position);

  music_name.setText(musicInfo.getSong_Name());

  music_singer.setText(musicInfo.getSinger_Name()+"|"+musicInfo.getSong_time());

  music_size.setText(musicInfo.getSong_size()); //這里一定需要轉(zhuǎn)換成字符串類型的

  return view;

  }

  到這里就基本實(shí)現(xiàn)了讀取歌曲信息的功能了,只要在主界面設(shè)置適配器就可以了。

 

上一篇:安卓防火墻 PS DroidWall

下一篇: 黑洞路由與路由黑洞