自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (4)
  • 收藏
  • 关注

原创 使用java实现android的handler消息机制

  使用过安卓的人都能体会到安卓的消息机制-handler机制使用起来非常的方便,特别是在处理线程间通信时更能体会到这点,那么如果我们离开了安卓的环境,比如使用纯java时能否使用这种机制呢?  答案当然是肯定的了,安卓的消息机制是使用基于生产者消费者模式实现的消息队列来实现的,我们只需要使用java按照这种思路来实现就行了。  话不多说,直接上代码。首先是Handler:pac...

2018-12-14 14:32:33 1092 1

原创 java数据结构之LinkedList

LinkedList源码对其定义为Doubly-linked list implementation of the List and Deque interfaces即LinkedList是一个双向链表结构,它是以节点的形式保存元素,添加到其中的元素都会被包装成节点,每个节点包含两个其他节点的引用,一个指向前一个节点,另一个指向后一个节点。因为是一个双向链表,因此可以在链表的任意位置插入...

2018-09-20 20:12:03 230

原创 java数据结构之ArrayList源码分析

ArrayList是动态数组,它可以动态的增加和减少元素,灵活的设置数组的大小。我们知道,数组定义后其大小就无法变化了,那么ArrayList如是如何实现动态数组这个功能的呢?下面我们就从ArrayList的源码来分析:1、ArrayList的初始化public class ArrayList<E&amp

2018-09-20 13:43:50 258

原创 LRU算法实现

LRU,即最近最少使用,是一种缓存算法,其核心思想是使用一个Map来保存数据并使用双向链表来维持顺序——它是将插入的每一条记录都包装成一个节点,每个节点包含两个其他节点的引用,一个指向前一个节点,另一个指向后一个节点,(如下图所示:)               其中Node的数据结构为: class CacheNode { Object key; O...

2018-09-13 17:29:15 3713

原创 ubuntu使用intellij开发golang

1、安装go1.1、下载安装包$ wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz1.2、在/usr/local下安装程序$ sudo tar -xzf go1.9.1.linux-amd64.tar.gz -C /usr/local1.3、建立工作空间 在/home目录下, 建...

2018-09-01 12:30:57 823

原创 web前端知识点小结 (六)

js发送http请求var xmlhttp; if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 ...

2018-08-08 20:14:38 303

原创 web前端知识点小结 (五)

javascript解析json数据JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象。 JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串。 eg:<script>var text = '{ "sites&am

2018-07-23 20:27:09 322

原创 图片压缩

在开发网站的时候,如果原图内存过大会导致加载缓慢,因此需要进行图片压缩,一下提供三种可选的压缩方案。一、使用webp进行有损压缩或无损压缩webp库安装 1、libwebp下载:内部的 cwebp库 支持程序的编码和解码的WebP格式图像。http://www.linuxfromscratch.org/blfs/view/svn/general/libwebp.html ...

2018-07-11 16:48:08 401

原创 web前端知识点小结 (四)

html居中方法1.水平居中a)宽度为明确值:margin-left和marginright同时为auto; b)宽度不确定:position:absolute;left:50%2.垂直居中margin-top:x%;其中x = (100% - 元素高度占据容器的比例) / 2;或者 position:absolute top:50% ...

2018-07-11 16:32:24 243

原创 web前端知识点小结 (三)

添加返回顶部的功能1、添加可点击图片,点击即可返回到顶部<div> <a href="#"> <img src=&quot

2018-07-06 20:36:08 350

原创 Git使用简短教程

1.配置仓库mkdir project; cd project; git init; a)全局配置用户: git config –global user.name “username” git config –global user.email “useremail” b)局部配置用户(该目录将覆盖全局配置用户): git conf...

2018-07-01 21:26:32 147

原创 web前端知识点小结 (二)

html使用bootstrap实现网格布局bootstrap提供了一套响应式、移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。 工作原理: 1.数据行(.row)必须包含在容器(.container)中,以便其赋予合适的对齐方式和内距(padding)eg.<div class="container">&lt

2018-06-27 17:12:53 1368

原创 web前端知识点小结 (一)

html标签含义<!–…–>:定义注释<!DOCTYPE> :定义文档类型<html>:html文档的总标签<head

2018-06-19 16:59:04 2128

原创 计算机网络基础知识-分层

OSI规定的网络为七层物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)数据链路层:将比特组装成帧和点到点的传递(帧Frame)网络层:负责数据包从源到宿的传递和网际互连(包PackeT)传输层:提供端到端的可靠报文传递和错误恢复(段Segment)会话层:建立、管理和终止会话(会话协议数据单元SPDU)表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)...

2018-05-24 16:23:11 1189

原创 Service启动流程

前面介绍了activity的启动流程:launcher界面点击应用图标启动Activity流程分析和同一进程activity中启动另一个activity的流程,这两篇文章分别介绍了在新的进程中启动activity以及在现有进程中启动activity的流程;本文将介绍service的启动流程。我们要启动一个service一般都是使用以下语句:mContext.startService(intent);

2018-01-01 16:38:31 1613

原创 同一进程activity中启动另一个activity的流程

在上一篇文章launcher界面点击应用图标启动Activity流程分析 中我们分析了在新进程中启动activity的流程,这里我们也顺便介绍下在同一个进程的activity中启动另一个activity,这种场景在实际应用中应该更为常见。都是启动activity,这两种场景有什么区别呢?其实也没什么大的差别,主要是在新进程中启动activity时AMS要先创建一个新进程然后才在新进程中完成activ

2018-01-01 15:02:33 2307

原创 launcher界面点击应用图标启动Activity流程分析

在安卓开发中,四大组件-Activity,Servie,Broadcast receiver以及contentprovider是一个应用的主要组成部分。在应用中每一个界面都对应一个activity,而各个界面之间的跳转对应着activity之间的切换。那么activity是怎么启动的呢?activity的启动场景主要分两种:launcher界面点击应用图标启动activity;在应用程序的activ

2017-12-30 19:24:07 3061 2

原创 GridView出现重叠或者最后一行显示不全原因分析

gridview特点总结:1, GridView有一个视图高度,其计算方法是:第一个格子的高度*总的排数; 2, GridView有一个内容高度,其计算方法是:每排最后一个格子的高度之和; 3, 若视图高度小于内容高度,则内容显示不全,可以滑动来显示; 4,GridView每排的高度,不是固定的,使用的是最后一个格子的高度。 5,若某一排中有内容超过最后一个格子高度的,则多出的部分,

2017-11-09 13:48:01 1130

原创 Android屏幕适配

在学习屏幕适配之前,先了解下几个概念: 1. px 是英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分辨率如480X800就是指的像素。 2. in 表示英寸,是屏幕的物理尺寸。每英寸等于2.54厘米。例如我们经常说的手机屏幕大小有,5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是4英寸,表示手机的屏幕(

2017-08-10 20:17:34 293

原创 基于android的网络音乐播放器-通知栏控制(RemoteViews)(十)

到这里音乐播放器该有的功能基本都有了,最后再添加一个通知栏控制功能——当我们后台运行的时候可以在通知栏看到我们的音乐播放状态并且可以控制音乐的暂停/播放/上一首/下一首;点击通知图标即可返回音乐播放器。要实现通知栏的显示功能需要用到Notification,他的视图是通过使用RemoteViews来实现的,Notification的显示和取消需要通过NotificationManager来控制。下

2017-05-11 19:43:02 4583

原创 基于android的网络音乐播放器-播放控制界面(九)

到这里我们的音乐播放器已经有了播放,收藏,搜索网络音乐并下载(包括多线程断点下载)等基本功能,下面将开发播放界面——实现音乐播放的控制-上/下一首,播放/暂停,循环控制,专辑图片的加载,歌词的加载和解析并支持滑动改变进度。这些实现主要在一个类里-PlayMusicActivity.javapackage com.sprd.easymusic;import java.io.BufferedReader

2017-05-08 10:07:31 2457

原创 基于android的网络音乐播放器-下载完成后下拉音乐列表刷新(八)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-05-02 18:24:47 1248

原创 基于android的网络音乐播放器-下载任务的暂停/继续/删除以及断点下载(七)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-04-18 16:22:56 1031

原创 基于android的网络音乐播放器-网络音乐的多线程下载(六)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-04-17 15:22:38 2261

原创 Json数据的解析

最新在写基于安卓的网络音乐播放器,搜索网络音乐时服务器端返回json数据响应,为了从中取出我们需要的音乐信息,需要对json数据进行分析,通过在网络搜索结合自己的了解后发现其实这种数据结构还是比较简单了。在包org.json下有如下几个类JSONObject JSONObject有一个String参数的构造函数,用法为JSONObject jo = new JSONObject(string)

2017-04-07 11:07:53 1180

原创 基于android的网络音乐播放器-网络音乐的搜索和展示(五)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-04-07 10:15:41 12032 6

原创 基于android的网络音乐播放器-播放音乐及收藏音乐的效果展示(四)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-04-06 12:59:13 2662

原创 基于android的网络音乐播放器-回调实现音乐播放及音乐收藏的实现(三)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-04-06 09:35:02 4894

原创 基于android的网络音乐播放器-添加viewpager和fragment实现滑动切换多个界面(二)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-03-31 16:19:20 2173

原创 基于android的网络音乐播放器-本地音乐的加载和后台播放(一)

作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩固下,也当作是练练手。感兴趣的朋友可以看看,有设计不足的地方也欢迎指出。开发之前首先介绍下该音乐播放器将要开发的功能(需求):1.本地音乐的加载和播放;2.网络音乐的搜索,试听和下载;3.音乐的断点下载

2017-03-30 16:53:28 4955 3

原创 java自动装箱之Integer

Integer inta = 2;     //相当于Integer inta = new Integer(2);Integer intb = 2;     //相当于Integer inta = new Integer(2);System.out.println(inta == intb);//输出将为true Integer biga = 128;     //相当于Integ

2017-03-02 14:44:39 235

原创 为什么会有堆内存和栈内存之分

当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁。因此,所有在方法中定义的局部变量都是放在栈内存中的;在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象不会随方法

2017-03-02 10:02:54 3833 1

原创 foreach 循环

foreach 循环

2017-03-02 09:40:14 306

原创 Android本地及网络音乐播放器-网络音乐的试听和下载(四)

上节讲了如何搜索网络音乐并以列表的形式展示在我们面前,该节将述点击网络音乐搜索列表中的歌曲后选择试听或者下载的功能实现. 首先是网络音乐列表添加点击监听,点击后弹出提示框-选择试听或者下载,根据选择的不同将执行不同的功能代码,具体代码如下: NetFragment添加如下代码:musicList.setOnItemClickListener(new OnItemClickListener() {

2016-10-09 10:16:22 1411

原创 Android本地及网络音乐播放器-网络音乐的搜索(三)

当音乐播放器的本地音乐播放和音乐播放界面实现后,我们将逐渐开始网络音乐功能的拓展,本文主要将的是如何实现网络音乐的搜索以及将搜索到的结果以列表的形式展示出来,主要设计的内容包括:音乐接口的使用,添加网络请求(这里使用的是volley-下载地址,下载完将volley.jar拷到项目/libs下),处理响应返回的数据-json(相应的类在org.json包下) NetFragment.java的主

2016-10-03 14:05:10 2809 1

原创 Android本地及网络音乐播放器-播放界面显示(二)

接着上一篇的继续,该节讲的是实现一个音乐播放的界面,毕竟直接在主界面播放音乐无法看到细节,也不够美观;这里我们在主界面右下角的音乐图标上添加点击监听,点击即可转到播放音乐界面,具体代码如下: 1.MainActivity做如下修改: //音乐控制按钮的监听 private class MyPlayListener implements View.OnClickListener {

2016-10-01 16:40:08 2303

原创 Android本地及网络音乐播放器-播放本地音乐(一)

入职没多久,自学了一段时间的安卓基础知识,抱着巩固下基础以及学会对知识点的基本运用的初衷写了一个音乐播放器,因此用到的东西都是很基础的,功能什么的大部分都是按照自己的想法来实现的,如果看完感觉哪些地方写的不行或有好的建议欢迎给我留言.   该Android音乐播放器代码量稍微有点多,这里我将以实现功能的顺序为参考将音乐播放器分为几篇博客发布.该播放器实现的主要功能如下(结尾将会附上源代码下载地址)

2016-09-30 14:47:03 16535 7

用java实现安卓handler消息机制

使用java实现安卓的handler消息机制,支持跨线程通信和发送延迟消息

2018-12-14

Android网络音乐播放器 源码下载

该android音乐播放器支持以下功能: 1.本地音乐的播放控制; 2.音乐的收藏和取消收藏; 3.网络音乐的搜索和下载; 4.下载的控制-暂停/继续/删除/断点下载; 5.音乐列表刷新-下载完成后刷新可以看到新增歌曲; 6.播放界面-加载专辑图片和歌词并支持歌词的滚动监听; 7.后台任务栏控制音乐的播放。 主要知识点: 安卓四大组件之Activity,Service, Broacast Receiver分别实现界面的展示,后台播放和下载,组件之间通信; HttpURLConnection实现歌曲,专辑图片,歌词的搜索; 多线程下载-多个线程分割下载任务提高下载效率并结合数据库实现断点下载; 异步任务AsyncTask执行耗时任务-音乐的收藏(使用到数据库)操作及音乐的搜索等需要访问网络的操作; 自定义view实现圆形专辑图片,滚动歌词,支持下拉刷新的音乐列表; Json解析网络响应,正则表达式解析歌词; Notification和RemoteViews实现后台任务栏控制音乐的播放

2017-05-12

volley.jar

用于添加网络请求,简单好用

2016-10-03

Android本地及网络音乐播放器

该音乐播放器主要实现了如下功能: 1.本地音乐的播放及控制; 2.音乐播放界面的展示; 3.在线音乐的搜索及展示(包含使用**json**解析数据); 4.在线音乐的试听及下载; 5.下载控制界面-下载歌曲的暂停/继续/删除(可以查看并删除已下载音乐); 6.播放界面歌手专辑图片及歌词的下载和显示; 7.歌词的滚动显示以及滑动歌词改变音乐进度的监听; 8.音乐的断点下载; 9.基于PopupWindow的弹出式菜单(支持透明度修改和自定义背景-相册选择或拍照); 10.后台任务栏显示与控制音乐的播放. 新手作品,如有不足的地方欢迎指出,谢谢!

2016-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除