上面我们给大家把项目的环境搭建好了,现在我们就打开我们的Eclipse吧,至于android开发环境的搭建,可以在我的博客中找到相关的资源哦,这里就不给大家再重复了,选择File-->new-->android project,建立我们的项目吧,我这里取名为Mp3Player,我们需要实现的功能部分为下面这个部分;

就是将服务器中的MP3资源信息显示在activity中!!

一、页面设计

在这里我们需要用到android里面的一个主要activity,那就是TabActivity,它就是用来分页显示我们的控件的,相当于我们android手机里面的手机联系人那种形式,里面有未接来电、已接来电、通讯录等几个通过Tab切换的页面,它就是一个TabActivity,我们把这个activity作为主页面,就是项目启动后出现的那个页面MainActivity,TabActivity中添加两个页面,分别用来显示服务器端MP3信息和SD卡上面Mp3信息,我这里取名为:RemoteMp3Activity和LocalMp3Activity,因为显示方式为list,所以这两个activity需要继承ListActivity,下面来看它们的实现方式:

MainActivity---->TabActivity,RemoteMp3Activity,LocalMp3Activity-->ListActivity

首先我们给这三个activity进行layout布局:

main.xml <?xml version="1.0" encoding="utf-8"?>

因为MainActivity主要是TabActivity,所以它需要定义上面这些标签元素,TabHost,大家不懂的话或者布局这快不是很明白的话,建议去网上找相关资料学习一下。

因为remote_mp3_list.xml和local_mp3_list.xml显示的内容都是MP3列表,所以它们的xml定义都是一样的: <?xml version="1.0" encoding="utf-8"?>

这里需要注意,就是如果一个类继承自ListActivity,那么它的布局里面,必须要引用android:id="@id/android:list",否则启动会报错!!

这里我们还需要定义一个xml,那就是继承自ListActivity,需要定义一个适配器,里面有个参数表示显示哪些元素,我们需要添加这样的一个xml文件来定义它,这里我们在显示的时候,只显示MP3的文件名称和它的大小: <?xml version="1.0" encoding="utf-8"?>

如果大家对这些感觉摸不着头脑的话,就去学习一下android控件ListView、Tab这块,相信就会很明白,这些都是页面布局、控件显示方面的知识啦!!好了,我们的页面布局设计这块就差不多了,开始我们的代码这块吧!!

二、将RemoteMp3Activity和LocalMp3Activity加入到MainActivity中,我们的MainActivity类: package com.harderxin.activity; import android.app.TabActivity; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.widget.TabHost; /** * 主界面MainActivity,是一个Tab选项卡页面 * 包括RemoteMp3Activity:获取远程服务器上面MP3信息 * LocalMp3Activity:获取手机中SD卡里面MP3 * @author Administrator * */ public class MainActivity extends TabActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); addTab(); } /** * 添加Tab */ private void addTab(){ //得到当前Activity的TabHost类,针对TabActivity的操作通常都由这个类完成 TabHost tabHost=getTabHost(); //创建TabHost.TabSpec,这个对象代表了一页 TabHost.TabSpec remoteTabSpec=tabHost.newTabSpec("Remote"); Intent remoteIntent=new Intent(); //生成一个Inent对象,该对象指向一个Activity remoteIntent.setClass(this, RemoteMp3Activity.class); //设置Tab里面的内容 remoteTabSpec.setContent(remoteIntent); //设置Tab里的setIndicator理解为label和icon图标,这里使用的图标是系统里面自带的 Resources res=getResources(); remoteTabSpec.setIndicator("Remote", res.getDrawable(android.R.drawable.stat_sys_download)); //将设置好的TabSpec对象添加到tabHost中 tabHost.addTab(remoteTabSpec); //创建第二个tabHost TabHost.TabSpec localTabSpec=tabHost.newTabSpec("Local"); Intent localIntent=new Intent(); localIntent.setClass(this, LocalMp3Activity.class); localTabSpec.setContent(localIntent); localTabSpec.setIndicator("Local",res.getDrawable(android.R.drawable.stat_sys_upload)); tabHost.addTab(localTabSpec); } }

RemoteMp3Activity: public class RemoteMp3Activity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.remote_mp3_list); updateListView(); } }

LocalMp3Activity: public class LocalMp3Activity extends ListActivity{ private List mp3Infos=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.local_mp3_list); } }

上面两个Activity使用的布局资源上面给大家说过的,MainActivity、RemoteMp3Activity,LocalMp3Activity类写好后,我们必须要在AndroidMainifest.xml中进行注册哦,不然系统怎么知道有哪些Activity呢,对吧: <?xml version="1.0" encoding="utf-8"?>

我们的主界面是MainActivity,所以将intent-filter添加进去!!

好了,我们的页面都配置好了,启动项目,我们将会看到这个界面哦!

这样,我们显示的服务器MP3页面和SD卡MP3页面都用Tab来显示了,我上面是写好的程序,所以把资源给请求到了,我们启动后是什么都没有的,一篇黑呀,所以我们后面得要来实现功能了哦!!

android音乐播放器主页面设计,Android项目之旅二 简易Mp3播放器页面设计相关推荐

  1. android 从服务器获取音频,Android项目之旅三 简易Mp3播放器从获取服务器端Mp3信息...

    上面我们已经把页面弄好了,下面我们就要在里面实现我们的功能了哦,今天主要是在RemoteMp3Activity中做功夫,因为项目启动后,这个Activity要做很多事情哦: 1)从服务器上面下载mp3 ...

  2. 我的Android进阶之旅------Android MediaPlayer播放mp3的实例--简易mp3播放器

    大家好我们今天研究的是Android中很重要也最为复杂的媒体播放器---MediaPlayer. Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上 ...

  3. 简易MP3播放器实现

    简易MP3实现包括以下几个部分: 1. 下载模块 1> 功能 a> 从服务器下载歌曲列表 b> 根据用户选择下载对应的MP3文件以及对应的lrc文件(如果存在) 2> 涉及的技 ...

  4. tkinter项目实战_Python GUI项目实战(二)主窗体的界面设计与实现

    前言 上一节我们介绍了Python GUI项目实战(一)登录窗体的设计与实现,实现了该项目登录窗体的GUI的搭建,用户的账号和密码校验完成后应当跳转到主窗体界面,这一节我们将具体介绍主窗体界面的设计与 ...

  5. python界面设计实例-Python GUI项目实战(二)主窗体的界面设计与实现

    前言 上一节我们介绍了登录窗体的GUI设计与功能实现,用户的账号和密码校验完成后应当跳转到主窗体内容,这一节我们将具体介绍主窗体界面的设计与功能实现! 一.基础界面设计 我们新建一个900x640的窗 ...

  6. delphi 登录界面 主窗体 切换_Python GUI项目实战(二)主窗体的界面设计与实现

    前言 上一节我们介绍了Python GUI项目实战(一)登录窗体的设计与实现,实现了该项目登录窗体的GUI的搭建,用户的账号和密码校验完成后应当跳转到主窗体界面,这一节我们将具体介绍主窗体界面的设计与 ...

  7. 手把手带你设计接口自动化测试用例(二):根据接口信息设计测试用例

    手把手带你设计接口自动化测试用例(二):根据接口信息设计测试用例 上一篇文章 手把手带你设计接口自动化测试用例(一):提取接口信息并分析 详细介绍了如何提取并分析登录.发布.修改.删除.查询等接口信息 ...

  8. 基于嵌入式Linux的MP3播放器的设计与实现

    摘要:本文详细介绍了嵌入式系统的特点以及嵌入式系统开发的流程,分析基于嵌入式Linux的MP3播放器的关键技术,设计和实现了一种基于嵌入式系统的 MP3 播放器.该播放器利用 QT 技术和开源的音频解 ...

  9. 选对MP3播放器 享受无损纯音质

    网络上最常见.使用人数最多的音频格式是MP3格式.MP3格式具有文件体积小的优点,但由于采用了有损压缩编码,音质有缺憾,MP3格式显然难以满足音乐爱好者的听音要求.在这种情况下,APE.FLAC等无损 ...

最新文章

  1. iOS下JS与OC互相调用(二)--WKWebView 拦截URL
  2. 头的大小是天生的吗_眼睛一单一双怎么办?可以只做一只吗?
  3. Processing--鼠标响应(1)
  4. 讲讲 Python Launcher 是什么鬼东西?
  5. Java基础复习——继承机制
  6. DeepMind和Unity合作,创建虚拟世界来训练AI
  7. 数商云SCM供应链协同管理系统解决方案
  8. 南京大学2022年计算机考研复试分数线多少
  9. Tracert(traceroute)Ping 工作原理分析
  10. html5快捷键保存,保存的快捷键是什么?有了快捷键保存太方便了
  11. 根据UA获取用户访问操作系统、浏览器名
  12. UCI、KEEL下载数据集
  13. python 存储图片_使用python存储网页上的图片实例
  14. 南京原市长季建业受贿1132万获刑15年
  15. <Leetcode>算法初步(回顾)
  16. python语言strip的作用_Python语言中的strip()的理解
  17. 定期清理window事件日志
  18. ERASOR:解决动态环境下的SLAM建图问题,有效过滤动态物体(ICRA2021)
  19. python --深入浅出Apriori关联分析算法Apriori关联...
  20. 数控系统的计算机仿真论文,计算机仿真技术及其在数控加工中的应用数控仿真技术论文.doc...

热门文章

  1. 账户初始资金修改问题
  2. 使用ICEM绘制非结构网格时,如何提高网格质量?【转载】
  3. NYOJ 118-修路方案
  4. 如何成为一名优秀的软件测试工程师
  5. IDM6.41最新版下载器Internet Download Manager
  6. 2021年南京市高考成绩查询,2021年南京市所有的高中排名,南京市高中高考成绩排名出炉...
  7. grails3.3.0_受Grails启发的框架Griffon在0.9.5 RC2中进行了重大改造
  8. KDZD电缆交流耐压试验测试仪
  9. 学习Javascript之数组去重
  10. 目前最新的CPU是什么?