回忆:2014进入android三个月时的那种初心!纯属个人分享初学的心态。

本人文采不好,写文章不在行,就连第一句话都要写了又删。刚开始先说明,本人大学毕业一年,没有编程基础,大学学的是生物。之前一直苦恼是否能够坚持到培训毕业,目前三个月了,看来自己是坚持下来了,当初也是因为看到博客里大神的一句话“学生物的同学有耐心,可以学好的”,嗯这句话坚定了我的信念。

第一个月java阶段,主要学的是javaSE的内容,都是一些语法知识,加上大量的练习,我想最初的面向对象都让在这方面没有基础的同学困惑了许久,至少我是这样的,借助博客,借助百度,多少我是开始了解了。还记得面向对象的三个核心,封装,继承,多态,面对这方面的练习也都没少做,看了许多视频,买了一本java入门的书籍,以便我随时放开查阅基础知识。

第二个月,android初级加android中级,刚开始介绍了我们项目的目录结构,接下来主要介绍了布局,主要有linearlayout、relativelayout,记得当时用到最多是就是这两个布局,当然这个阶段也有用到fragment,比如做的第一个小demo,就是我们模仿android原生的通讯录来做的,里面用到了tab,一些基本控件TextView、EditText、ImageView、RadioButton、等等。

这里截图给大家看下我这个菜鸟的第一个小demo:



当时xml画图尚未学习,Button就没有进行美化,tab按钮图标同样也是用drawble里面自己创建了简单的,配上一些TextView,这个界面就就算完事了。



在这个页面进行数据的编辑、修改、存储、当时用的sql来存储数据的。简单数据还可以用sharedpreference来储存。


将我们编辑的数据通过intent(意图)传回到这个界面,显示在listview上面。还添加了行点击事件与长按编辑等。

行点击之后 我们会跳转到详细信息界面如下,简单的截图展示下:



在这个页面实现了点击拨打电话,点击红色框框发送短信等功能,别忘了添加权限哦,呵呵。


这里用到了通用资源标识符uri;

//点击拨号
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+mycount.phone));
startActivity(intent);
//点击发送短信
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+mycount.phone));
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mycount.phone));//也可以用这个!
intent.putExtra("sms_body", "需要发送的内容");//key时固定的!
startActivity(intent);

这里具体的实现功能逻辑就不多说了,最重要的时靠这个小项目让我们活用了对sql的增(insert)、删(delete)、查(query)、改(update)

这个熟练之后我们接着又做了一个小demo,就是模仿酷狗音乐播放器进行布局,实现里面的一些模块的功能。

这个小项目其实有难度的真正的让我们投入了挺多时间的,包括课堂的练习,下课后的查询线上资料,查看辅助书籍等等。还有请教一些牛人,学长之类的。


先来看看我模仿的布局吧,只是模仿,从未用作别的用途;当时做这个布局找图片,代码微调,各种linearlayout、relativelayout、中间加入一个scrollview再加上各种嵌套,用了一个晚自习的时间做出来,壁纸是自己找的替换了背景。



(说明)整个项目的核心是围绕服务来进行的。因为服务可以长时间运行在后台,那么我们就可以用这个特性,把我们要操作的MediaPlayer对象放在服务中进行一系列的方法调用来控制音乐的播放、暂停、上一曲、下一曲、播放模式的切换等等。

我的这个小项目实现了几个页面的跳转如下:
1、跳转到在线音乐界面,并且加载音乐
2、跳转到音乐播放界面,播放与暂停音乐等功能
3、跳转到正在播放音乐列表
4、跳转到我喜欢音乐列表
5、跳转到最近播放音乐列表
6、跳转到本地音乐列表



在线音乐界面实现了加载在线音乐信息并且将其显示在listview上的功能。
1、从hfs下载json数据并且解析、保存到容器中。
2、从容器中获取数据显示在listView上。
3、在getView()的方法中开启一个异步加载,设置显示在线图片!

4、行点击时,播放点击的歌曲!
实现原理:
开启界面时,绑定服务成功后返回一个非空的MyBinder的对象,利用MyBinder操作服务里面的MediaPlayer对象!进行音乐的播放与暂停!


另外在这个界面增加了一个下拉刷新的功能,源代码借鉴于网上。这个界面的实现主要是写了一个类继承linearlayout,在这个类(linearlayout)中加入了两个控件,一个是下拉头的布局xml,一个是listview,下拉放手时会触发刷新的方法,在这个方法里可以重新开启异步加载下载数据,刷新到listview上!



音乐播放界面实现了:
1、控制音乐上一曲、下一曲、暂停播放、时间显示、进度更新、
播放模式、我喜欢等功能。
控制实现原理,在MyBinder中定义操作音乐播放的方法,在音乐播放界面的按钮点击事件中进行控制方法的调用。
2、点击我喜欢按钮将正在播放的歌曲信息保存到我喜欢的数据库
3、控件的更新,在启动界面服务绑定成功时,刷新控件。在音乐播放开始时发送广播,在接受广播时更新控件!


我喜欢界面实现了以下功能:
1、显示我喜欢数据库中的歌曲信息到listview上
2、实现多选、删除等功能
3、行点击播放与暂停音乐

这里我说下思路:

实现多选、删除等功能
思路:
声明一个HashMap保存要删除的歌曲的地址(url),在点击删除按钮时,遍历Map与musiclist,如果有相同的url则从我喜欢数据库中删除!
删除后在查询数据库,设置控件的默认显示,并且清空Map容器


该界面的实现:
1、在清单文件中选择半透明主题模式。
2、在界面中放入一个listview显示正在播放的歌曲列表信息。

本地音乐播放界面:

1、本地音乐界面,查询本地媒体数据库,将查询到的结果显示在listview上,布局跟最近播放列表界面类似,添加了一个搜索的按钮。
2、依然添加了行点击事件,点击播放与暂停播放歌曲!
3、点击搜索按钮,弹出一个popupwindow,点击跳转到扫描的界面。


这是最后一个界面,实现了扫描的功能:

扫描界面实现了点击按钮开始扫描,播放扫描动画,将扫描到的歌曲显示在textview上,扫描结束后弹出popupwindow,显示提示信息!

这就中级阶段的大概学习内容,现在还剩一个月的冲刺阶段,我想要为自己增加一些信心,鼓励自己所以写了这个博客分享一些学到的东西,我没有写作的经验,更没有写好一篇博客的经验,包括格式等等。希望看到的可以多多指点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值