andriod_音乐播放器学士学位毕业论文(编辑修改稿)内容摘要:

装成功,重启 Eclipse 软件,设置 Android SDK Home, Windowrefrence 在 SDK location 中输入 SDK Tools 路径: D:\android software\androidsdkwindows 点击 OK 这样 Android 环境就已经搭建成功了,如图 所示: 图 . Andriod 音乐播放器项目工程设计 . Andriod 项目 Android 的四大基本组件: Activity(活动 ), Service(服务 ), Broadcast Receiver(广播 ), Content Provider(内容提供者 ),各组件之间要进行切换需要一个意图或企图 Intent 类,通过启动 Start Intent()方法来使各组件进行跳转。 Android 的五大布局方式: Linear Layout(线性布局 ) Frame Layout(帧布局 ) Table Layout(表格 布局 ) Absolute Layout(绝 对布 局 ) Relative Layout(相对布局 )。 五种布局方式可以相互嵌套, Android 各种漂亮的界面都是通过嵌套布局而实现的。 Android 的线程,以及线程之间通信的中介: Handler 类 Android 数据库:在第三章已经介绍过了。 这里不再介绍 Android 配置文件: Android 及 res 资源文件中各种属性 布局方式 引用的资源等 Android 系统将插件 ADT 集成到了 Eclipse 工具上,因此,一个 Android 程序启动后,系统会启动一个模拟器( Emulator)如下图 : 图 . Andriod 工程程序设计 Android 工程基本结构目 录包括: src (源代码 )、 gen( Android 系统自动生成的常量)、 Res(资源文件):主要存放程序界面的布局配置( .xml)文件和图片资源。 Android 是四大组件的驱动配置文件,有它的存在,Android 程序的四大组件才可以正常的跳转。 下图 是音乐播放器代码结构: 图 图 内容为该播放器的 .Java 文件、播放器所用到的字符串,字体大小、 字的颜色等配置文件、该播放器的各种界面的布局配置文件及该播放器 的图片资源,如图 所示: 图 . Android 文件 Android系统的任何一个程序启动都需要 Android 序,任何一个新建的工程目录都会自动生成一个 Android ,此配置文件是整个程序能够正常运行的核心,它里面包含了 Android SDK的版本,程序运行的默认 Activity,当程序中的任何一个组件触发事件后,系统都会自动的去 Android。 任何一个 Android : ?xml version= encoding=utf8? manifest application activity intentfilter action/category/ /intentfilter /activity /application usessdk /usespermission / /manifest Android 系统有一个编码的规定,支持的编码是 utf8,当程序中出现乱码是,我们须将其编码格式转化为 utf8.在 Android 中会在第一行声明一句: ?xml version= encoding=utf8?。 它是该系统支持的版本和编码。 在第二行定义了我们需要使用的架构,该架构来自xmlns:android= name space)是一个命名空间。 在 application 元素我们定义 android:icon=@drawable/icon android:label=@string/app_name, android: icon 是程序在手机中显示的图片,我们运用 @drawable/icon 表示了对 res/drawable 目录下的 的引用。 @string/app_name 表示了对 res/value 目录下 中定义的app_name 参数的引用。 activity android:name=.Play Rack Activity intentfilter action android:name=/ category android:name= / /intentfilter /activity 这是系统确定的首先要启动的 Activity 是 Play Rack Activity。 过滤器 intentfilter 有两种启动方式来启动界面: (1) 显示方式 显示方式是在代码中的直接启动组件,启动时会声明 Intent,在它的构造方法 Intent(组件 1,组件 2)中直接指定一个组件的名字 ,然后调用方法 start Intent(intent)以启动指定的组件。 (2) 隐式方式 隐式方式是通过过滤器来过滤完成的,启动的组件必须满足 action 和category 的条件才能够启动该组件。 这些属性是在 Android 文件中声明的。 两种启动方式都可以通过程序 set Action( ACTION 常量)和 start Activity( intent)或配置文件两种方式来实现组件的跳转。 第四章 安卓数据库设计 数据结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据的整体组织形式等一系列问题。 数据库,顾名思义,是存放数据的仓库。 只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。 数据库中的数据按一定数据模型组织、描述和存储,具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定范围内的各种用户共享。 在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端程序创建工具等, 做出合适的数据库类型选择。 . 数据库及字段属性 . 字段设计 file_table 主要是保存歌曲名字、类型、路径 字段说明: Id 歌曲 id 号 fileName 歌曲名字 filePath 歌曲路径 sort 歌曲类型(表 、图 ) 属性 数据类型 允许空 主键 _Id INTEGER Not null Primary key fileName TEXT Not null filePath TEXT sort INTEGER 表 列名 数据类型 长度 字段描述 _Id integer 5 编号,主键 groupid integer 5 组编号 Musicid integer 5 歌曲编号 表 Android 自带一个 MediaStore 封闭类 专门来存储媒体信息 通过 Uri EXTERNAL_CONTENT_URI 来访问 SDcard 中的歌曲详细信息。 存放媒体信息如 TITLE(标题 )、 ARTIST(艺术家)、 ALBUM(专辑)、 SIZE(大小 )如 图 : 图 歌曲列表 图 歌曲属性 . 音乐播放器 ER 图 音乐播放器 ER(实体 联系: entityrelation 图),歌曲的信息有歌曲名字、发行年份、流派名称、专辑名称、艺术家名称、曲目号码。 歌曲的排列形成播放列表。 列表有自己的编号,同时也给组成列表的歌曲名字分配编号。 播放器通过函数查询歌曲数量,然后显示给用户。 如图 : 图 音乐播放器 ER 图 . 数据库连接 这里将介绍如何进行 Android 数据库连接, Android 中自带 SQLite 数据库,这是一个十分小型的数据库,这样正适合 Android 这种移动平台使用。 Android 数据库存储的位置在 data/data/项目文件夹 /databases/目录下。 Android 是利用 ContentProvider 作为内容提供商, SQLiteOpenHelper 数据库帮助类来进行对数据库的创建和操作。 通过 ()方法直接对数据库进行操作。 程序中数据库类为 DBHelper extends SQLite Open Helper(继承关系),内容提供类 DBProvider extends Content Provider(继承关系)。 . 创建数据库 Android 提供了标准的数据库创建方式。 继承 SQLiteOpenHelper ,实现onCreate 和 onUpgrade 两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下: public DBHelper(Context context) {// 创建数据库 super(context, DATABASE_NAME,null, DATABASE_VERSION)。 } public void onCreate(SQLiteDatabase db) {// 创建时调用 (DATABASE_CREATE)。 } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 版本更新时调用 (DROP TABLE IF EXISTS File_Table)。 onCreate(db)。 } @Override // 在 ContextProvider运行时自动创建数据库 public boolean onCreate() { dbOpenHelper= new DBHelper(getContext())。 return true。 } 数据库如果创建不成功则抛出 FIleNotFoundException 异常 . 操作数据库 Android 对数据库的操作主要 有插入、删除、更新、查询操作,在进行任何操作时都必须指定一个 Uri,才能对相应的表进行数据操作。 //数据库删除操作 @Override public int delete(Uri arg0, String arg1, String[] arg2) { SQLiteDatabase db = ()。 try { (, arg1, arg2)。 } catch (Exception ex) { ()。 }return 1。 } @Override//数据库插入操作 public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase db = ()。 long count = 0。 try { count = (, null, values)。 } catch (Exception ex) { ()。 } if (count 0) return uri。 else return null。 } . 数据显示 程序是利用 Cursor 游标类指向数据表中的某一项,然后进行查询数据,用Log 日志显示出来。 @Override//数据库查询操作 public Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String s。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。