音乐播放器制作日志(Day1 )

时间:2022-06-03 05:01:25

      来晚咯,不好意思哟.刚才重新调整了一下结构,出现了点小问题,现在已经晕了.....

不过没关系,我们先来搞起来,顺便我也自己捋一下......

如果配置完开发环境,我们可以在找到我们的Eclipse,双击打开它,可以看到一个软件的界面.(P话).最开始的欢迎界面我们直接关闭就行,反正英文我也看不懂....

我们可以看到这样的界面:

音乐播放器制作日志(Day1 )

我已经创建好了一个项目,如果你没有创建过的话,这边是空的.

好类,我们点击"File"(文件)

音乐播放器制作日志(Day1 )


然后,找到这android 什么什么什么什么的,点击一下,这就是新建AndroidApp工程.

音乐播放器制作日志(Day1 )

在弹出的界面里面,我们打上自己项目的名字.随便取(自己做的,没那多规矩,嗨僧就好)...

然后一路 "NEXT"最后,我们可以看到

音乐播放器制作日志(Day1 )看多了一个刚刚创建的项目吧~~

音乐播放器制作日志(Day1 )

这是我们项目的结构,说几个用的到的.

MainActivity,这是我们程序的主入口,一般不动它,它是老大.

/gen/里面东西千万不能动! 特别是R文件,千万不能动....

/res/目录下面是一些资源文件,我们可以放些图片啊,什么什么的.

layout:布局文件,就是放UI的地方

最重要的:AndroidManifest.xml这个文件是我们整个项目的配置文件.一般情况下别去修改哟~

好啦,简单的介绍了一下我们的结构,下面我们开始对于我们播放器的一个结构做一个构思吧~~!

首先:要有一个Activity和一个View.来显示我们的播放器

其次,要有一个class,里面装我们播放器的一些动作(操作)

再其次,要有一个class,装我们得到数据的一些方法.

嗯....那今天我们就先创建 一个MusicActivity和它的布局文件吧!!

音乐播放器制作日志(Day1 )

右击你的这com.什么什么什么的包,出来一个菜单,点击 New ->Class (新建->类)

音乐播放器制作日志(Day1 )

在窗口处,我们去名叫MusicActivity,别的不用管,点"Finish"就行,然后我们就可以看到这样的画面:

音乐播放器制作日志(Day1 )

看,最最上面的一行,表示你的这个类所在的包的包名.,

public 表示 公共. 表示这个类可以被其他类访问,

class  表示 类(不是班级哦),表示 MusicActivity 这个玩意的类型.

后面的{ }表示 这个公共类的范围.

然后,我们既然要一个Activity,当然要让它就具有Activity的特性和方法咯.我们这里就用到一个关键字 :extends 继承于.

继承于什么捏? 当然是Activity咯.那我们就在 public class MusicActivity 后面直接打上 空格 extends 空格 Activity  然后按Ctrl+SHIFT+欧 ( 快速导包).然后会出现这样的画面:

音乐播放器制作日志(Day1 )

import android.app.Activity 稍微想一下就可以理解咯~~~

至此,我们的MusicActivity就变成的了一个 Activity的子类.它拥有父类Activity的所有特性以及方法.

这就是传说中面向对象的特性之一 :继承.

继承的概念:子类拥有父类的一切特性,可以调用父类的方法,且,可以同时拥有自己的方法和特性,子类可以被其他类继续继承下去(如果没有 final 修饰符的话),一代传一代,子子孙孙无穷匮也....这就是进化....哦不....继承....

简单不?说个更简单的,我们找到/res/layout文件夹,同样的 右击-new -other.

音乐播放器制作日志(Day1 )

在Android文件夹下面 找到:

音乐播放器制作日志(Day1 )

Android XML Layout File (安卓叉毛布局文件)

点击"Next"后和刚才Class一样,我们输入一个名字.这里要注意一点,这种layout文件 文件名不能有大写字母出现,可以有下斜杠 就是 _ 这个.

我们仿照Main的名字格式写一个:activity_music 

完成后 就是这样子:

音乐播放器制作日志(Day1 )

界面是:

音乐播放器制作日志(Day1 )


好先放着不管,我们回到刚才创建的MusicActivity.class中

音乐播放器制作日志(Day1 )

上方有工具条的,可以直接点过去,就和看网页一样.

我们在这个class的{}里面 打上 onCr 然后按 alt+/ (提示贱,我的老师一直不建议我用,所以我也不希望大家去用,尽量手打.)

选择第一个:

音乐播放器制作日志(Day1 )

选择后,会自动出现几行代码:

音乐播放器制作日志(Day1 )

好我来一个一个个大家说说:

首先,这是方法也叫函数

@Override 标签 表示 这个方法是重载的方法,

protected 表示,在本包中可以调用.比public 范围小一点

void  表示 空  代表 这个方法没有返回值.

onCreate 当创建时 ,是这个方法的名字.

(****)括弧 表示这个方法需要的参数,当然不需要参数的话可以用()这样来表示.

Bundle savedInstanceState 括弧里面,Bunndle 表示 参数的类型,save什么什么的表示 这个参数的名字.(真长....);

super();表示这个class的父类.就是我们说的Activity;

.onCreate();super后面的这个一串 表示,调用父类的这个方法,参数传过去完事.

那这个参数由谁传?这种方法不是我们传的,.由底层写好的代码传的..哈哈哈哈.反正不关我们事.

翻译成中文就是:当创建时将 savedInstanceState这个玩意回传给父类的onCreate()方法.

然后,我们这个Activity配置一个布局文件呗

那配置英文怎么说呢? option?不是不是,简单一点,set就行.我们手动打上

setContentView();

音乐播放器制作日志(Day1 )

它现在报错了,我们把鼠标放在这个方法上.看到是不是有黄色的一块提示出来了呢?

The method setContentView(int) in the type Activity is not applicable for the arguments ()

别的先不管,我们可以看到提示错误信息中有一个 setContentView(int),这说明,我们的这个方法是有一个参数的,

int 整数型 ,就是没有小数点的数

这里我们要了解一点我们所有东西,在/gen/R.java.文件中会被序列话,成为一串数字

大家可以打开来看看.

音乐播放器制作日志(Day1 )

这是我截取的一段,可以看到我们的两个布局文件全都被赋予了数字.0x7f030000; 代表啥,?我不知道,哈哈

那么,既然我们设置的是View.肯定是需要找一个代表View 的数字,一般情况下,我们会对布局文件中的所有控件添加一个唯一的标识.那就是Id;

且通过R.id.xxx来找到该控件.

但是,我们怎么载入Layout 布局文件呢?

一样的,我们要找的是Layout布局文件,那么在setContentView();的括弧里面打上路径:

R点(/ 边上那个)layout点activity_music

中文:R文件中layout方法下的activity_music 参数.

这里的activity_music和我们刚才创建的那个xml文件是有区别的.别搞混了哟.

一个是文件,一个是该文件对应的参数.

音乐播放器制作日志(Day1 )

好吧,这样我们的MusicActivity就载入了activity_music这个布局文件咯.~简单吧~嘿嘿.今天就到这里咯~~

最后一步!!非常重要! 就是按下

CTRL+SHIFT+F 以及CTRL+SHIFT+S

(自动排列以及全部保存)

然后关机睡觉~~哦也~~