婧婧音乐开发笔记01篇-项目组织结构和布局文件
2015-07-03 09:16
543 查看
学习Android已经一段时间了打算做一款播放器来练练手。下面的效果图是开发婧婧音乐第一阶段的效果图:
一:1.0阶段可以满足基本的功能:
1.自动获取SD卡的音乐文件,并以ListView的形式进行了显示
2.单击ListView的Item能够播放音乐
3.可以实现后台音乐播放
4.暂停,播放,上一曲,下一曲的播放
二. 在项目中用到了以下知识点:
1.ListView的优化,BaseAdapter的优化
2.UI的布局与设计
3.SD卡的音乐读取
4.Cursor的遍历,注意Cursor默认是下标-1开始的
5.contentProvider的使用
6.Service的使用
7.Service与Activity的通信
8.项目组织结构的使用:建立项目时一开始就建立了若干个项目可能需要的包把框架搭建好。
三.项目的组织结构:
以上分别对应的是:活动包,适配器包,实体包,服务包,和工具包
因为需要后台播放所以创建一个MusicPlayerService的类来提供相关的播放方法,并在主活动中调用。
DataHelper封装了变量SD卡音乐的静态方法。
四.项目的布局结构
activity_welcome:是一张欢迎界面的布局,点击应用就像微信一样先有一张引导界面
bottom代表:主布局下面的布局,这样做可以提高布局 的复用率。
top与bottom相同
item代表ListView的布局
musicplayer_activity:播放界面主布局。
五.代码
先把布局的代码放上来,因为一般设计先从视图开始的。
1.res/layout/ welcome_activity:
2.res/layout/musicplayer_activity的布局:包含一个头布局一个尾布局和一个listview
3.top_layout和bottom_layout:
以上是项目的组织工程和布局文件,下篇文章开始介绍业务逻辑。
一:1.0阶段可以满足基本的功能:
1.自动获取SD卡的音乐文件,并以ListView的形式进行了显示
2.单击ListView的Item能够播放音乐
3.可以实现后台音乐播放
4.暂停,播放,上一曲,下一曲的播放
二. 在项目中用到了以下知识点:
1.ListView的优化,BaseAdapter的优化
2.UI的布局与设计
3.SD卡的音乐读取
4.Cursor的遍历,注意Cursor默认是下标-1开始的
5.contentProvider的使用
6.Service的使用
7.Service与Activity的通信
8.项目组织结构的使用:建立项目时一开始就建立了若干个项目可能需要的包把框架搭建好。
三.项目的组织结构:
以上分别对应的是:活动包,适配器包,实体包,服务包,和工具包
因为需要后台播放所以创建一个MusicPlayerService的类来提供相关的播放方法,并在主活动中调用。
DataHelper封装了变量SD卡音乐的静态方法。
四.项目的布局结构
activity_welcome:是一张欢迎界面的布局,点击应用就像微信一样先有一张引导界面
bottom代表:主布局下面的布局,这样做可以提高布局 的复用率。
top与bottom相同
item代表ListView的布局
musicplayer_activity:播放界面主布局。
五.代码
先把布局的代码放上来,因为一般设计先从视图开始的。
1.res/layout/ welcome_activity:
<RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.LZT.mp3player.WelcomeActivity" android:background="@drawable/guide" > <TextView android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#f8f" android:textSize="20dp" android:text="@string/welcome_to_music" /> </RelativeLayout>
2.res/layout/musicplayer_activity的布局:包含一个头布局一个尾布局和一个listview
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <include layout="@layout/top_layout"/> <ListView android:id="@+id/mp3_lv" android:padding="5dp" android:dividerHeight="2dp" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="0dp"> </ListView> <include layout="@layout/bottom_layout"/> </LinearLayout>
3.top_layout和bottom_layout:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp" android:background="#20b2aa" android:orientation="vertical" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageButton android:id="@+id/play_mode" android:layout_marginLeft="5dp" android:layout_alignParentLeft="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/mode_a"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="本地音乐" android:textSize="20dp" android:layout_centerInParent="true" android:textColor="#fff" android:id="@+id/title_top"/> <ImageButton android:id="@+id/love_bt" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/love"/> </RelativeLayout> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="40dp" android:background="#20b2aa" android:orientation="horizontal" > <ImageButton android:id="@+id/music_logo" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginTop="5dp" android:background="#20b2aa" android:src="@drawable/music" /> <ImageButton android:id="@+id/pre_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/pre_button_pressed" /> <ImageButton android:id="@+id/play_pause_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/play_button_pressed"/> <ImageButton android:id="@+id/next_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/next_button_pressed" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal"> <ImageView android:id="@+id/album_img" android:layout_width="80dp" android:layout_height="wrap_content" android:src="@drawable/default_album"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是歌手" android:id="@+id/title_tv"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你是傻逼" android:id="@+id/artist_tv"/> </LinearLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/duration" android:layout_marginRight="10dp" android:layout_marginTop="20dp" android:layout_alignParentRight="true" android:text="4:00" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </RelativeLayout> </LinearLayout> </LinearLayout>
以上是项目的组织工程和布局文件,下篇文章开始介绍业务逻辑。
相关文章推荐
- Composer
- 在word中,整篇文章想要在每一章另起一页
- java基础知识随笔2--变量类型范围和操作方法
- python中使用中文
- mac下svn服务器用户的权限管理
- mysql实现绑定多个ip
- 找数组中只出现一次的两个数 位运算
- 数字信号处理公式变程序(一)——DFT、FFT
- 一个小命令行程序
- cocos2dx对于强大的RichText控制
- MyEclipse10.0 集成 SVN
- Leetcode 53 Maximum Subarray
- Ext JS 6正式版的GPL版本下载地址
- 全球最杰出的14位程序员
- Android SDK镜像代理
- 6、rmdir命令
- Ext JS 6正式版的GPL版本下载地址
- 《Java面试试题》创建Singleton class单例类
- Ext JS 6正式版的GPL版本下载地址
- python中的协程