- 博客(23)
- 收藏
- 关注
原创 Android开发需要了解的网络编程基础
一、概述网络通信需要通过协议来完成,目前所使用的网络通信协议主要由两种模型体现。因特网模型【五层】 应用层 → 运输层 → 网络层 → 链路层 → 物理层OSI/ISO模型【开放式系统互联 七层】 应用层 → 表示层 → 会话层 → 运输层 → 网络层 → 链路层 → 物理层简化五层 → TCP/IP模型【最常见 四层】 应用层 → 运输层 → 网络层 → 网络接口层二、...
2018-06-20 14:33:21
800
原创 高效管理你的Android项目 - Android项目架构分享
很久都没有写文章了。前段时间的项目紧急,忙完以后闲了一段时间,终于有空写写文章了。这篇文章主要是关于我整理项目结构的一些心得和分享,如果浏览者有更好的建议欢迎评论留言。
2018-04-04 15:25:06
700
原创 android资料集合整理
自定义ViewAndroid 从 0 开始自定义控件Android 从 0 开始自定义控件之 View 基础知识与概念(一)Android 从 0 开始自定义控件之 View 的滑动(二)Android 从 0 开始自定义控件之 View 的弹性滑动(三)android 从 0 开始自定义控件之 View 的滑动冲突详解(四)Android 从 0 开始自定义控件之 ViewRoot 与 Decor
2017-12-15 09:09:03
461
原创 首次启动APP的新功能指引蒙板的使用
一般来说很多APP在第一次安装启动后都会有个新手引导的过程,不过每家采用的方式不同。最近做到这块内容我就不再造轮子【其实是自己造不出来…】找到一个比较美观的新手引导层框架。 TourGuide介绍一个关于新手引导层的框架,界面较为美观,自定义属性也比较好。 TourGuide框架 使用在build.gradle导入框架repositories { mavenCentral()
2017-12-15 08:58:11
2195
原创 判断系统是否安装某APP - 以高德地图为例
前言近日在整合系统项目的时候有个小功能,就是跳转到百度地图或者高德地图。这块以后应该会有不少用到的地方,于是自己做了一些整理。闲话不说直接上代码。 代码因为只是一个小功能,所以代码量很少。工具类文件public class SystemUtils { private static SystemUtils systemUtils; public static SystemUtil
2017-12-15 08:57:25
2544
原创 安卓中如何给按钮添加点击音效
前言有很多制作精良的APP都自带点击音效,那么如何简单的来实现这一效果,这里需要使用到的一个概念叫做SoundPool,这个类主要用于播放一些比较小的音频文件,因为比较方便,通常用在游戏里比较多。 代码闲话不多说,我们现在需要做一个功能,就是点击某一按钮的时候同时播放音效出来。首先准备好你的音频文件,然后,在你的rec下面简历一个文件夹命名为raw,放入音频文件,如图所示:然后布局文件只有一
2017-12-15 08:55:51
5462
2
原创 安卓中带进度显示的图片上传
接上一篇:安卓选择图片上传功能 在这篇文章的基础上继续打造带进度的图片上传功能。过程蛮复杂,在本文中将贴出大量代码。嫌字多不看的出门左转。另外在上一篇文章中问我要demo的同学们,待后期我上传github后贴出地址。 前言 在查阅了大量资料以后,现在首先对于上传文件主要有两种方式。 - 把文件转换成字符串通过json格式上传【参考xutils3的post联网请求方式】 - 直接封装成一个
2017-12-15 08:55:18
1330
原创 安卓选择图片上传功能 - 支持多选拍照预览等
前言在网上找了很多第三方的相册拍照框架,都不尽人意,最后终于找到了一个比较好的框架,并且集成到了自己的demo中,花了两天的时间吧感觉挺值的。老规矩不说废话,直接上代码。感谢某开源库的作者:Alum以及本文的案例地址:Demo_ChooseImg 思路 先看目录,我尽可能的在自己力所能及的范围内,用最简单的方式和代码来实现。这里最重要的玩意儿是那个适配器。最下面的那个popupwindow
2017-12-15 08:54:39
1144
1
原创 MVP入门Demo - 登陆逻辑
前言本文适合MVP初学者,这东西可以说你一天不写就手生。初学的时候肯定要多多写写,用不同的场景模拟以下MVP的实现逻辑。如果看不懂的话就从我的MVC笔记→MVP笔记先过一遍,我不能保证一定能看懂,但是个人觉得多写写,只要逻辑思维不错的话入门还是比较快的。 逻辑用户输入用户名和密码点击登陆,然后按钮显示登录中,并针对各种情况作出提示。登陆成功则跳转到下一页面。老规矩先看分包:逻辑层次不明白的我
2017-12-15 08:53:59
320
1
原创 ListView与带EditText的item冲突问题
注意:在复用情况下冲突问题无法解决网上所有的可能性与实现方式我都实验了一边,亲测当动态添加带有EditText的item时,如果使用了复用的方式,无论怎么处理ListView与EditText始终存在冲突。最后我的解决方式只有采用不复用的方式来处理,但滑动存在卡顿需要寻找其他实现方式,这里只是我比较蠢的一种解决方案。 问题出现的问题主要是,焦点与数据状态保存问题。 分析大家都知道,Li
2017-12-15 08:53:14
406
原创 从零开始学MVP架构 - 由更浅到浅
前言首先如果你是一个半年以内的安卓初学者,如果你对逻辑思维的感受不够强烈的话,我不建议你立马接触MVP设计模式。为什么呢?因为我自己就是这波人里面的…尴尬个三秒钟,跳过。这种东西具体是什么呢?身边其实有很多类似的例子,如果非要举个例子,我个人感觉跟盖房子有那么一丢丢类似,但又不完全类似。以一个大型公司为例,它会分很多的部门,然后每个部门具有一定的职能,但其实很多公司的部门架构都是具有一定的相似性的
2017-12-14 17:15:18
656
原创 Android MVC 架构DEMO实例
前言首先我要说明的是:我知道MVP已经成为主流,但是鉴于本人的思维还没能理解,打算先从标准MVC入手,然后转入MVP模式。过程其实还是很有趣的,最重要的事情是理解思想。 思想MVC其实是【model、view、controller】这三个词的简称,就算是把这几个直接翻译过来也不是很好理解。从view说起,view就是你眼睛看到的,手指摸到的那些东西,因为是一些可视化的东西所以起了这么个名字。
2017-12-14 17:14:33
2130
3
原创 greenDao的基本使用
关于数据操作相关的库有不少,之前有写过用谷歌官方的一些工具类对数据库进行操作的demo,工程中需要使用greenDao来对数据库进行操作,因此写了个简单的demo,以及自己的一些理解。 前言Android中的数据库使用的是Sqlite,至于这个玩意到底什么,不需要详细分析。你只需要知道,这是一种简单小巧轻量级的数据库类型,便于对一些简单的数据进行管理即可。这里不对谷歌官方操作的相关代码进行演示
2017-12-14 17:13:50
338
原创 TabLayout/ViewPager/Fragment结合使用
前言之前是写过这块的教程,但是没有写完。因为中途各种原因耽搁了,现在重新开一篇文章写写关于TabLayout的相关内容 基本使用这里不在赘述,关于基本使用实际上在项目开发中并不能经常见到。实际上,TabLayout的常见使用场景主要又两类: - TabLayout + ViewPager - TabLayout + ViewPager + Fragment比较而言,第二种场景使用的
2017-12-14 17:12:46
277
原创 超简单方式教你打造原生侧滑菜单
然后你点击菜单可以更改图标,例如点击happy,首页就会变一个笑脸,这个实现的过程超级简单 第一步:你需要使用ToolBar与DrawableLayout两个比较新的控件首先要写三个xml布局文件,我这里的布局文件是使用了include标签嵌入的,代码如下 - headbar_toolbar.xml<?xml version="1.0" encoding="utf-8"?><android
2017-12-14 17:11:56
293
原创 TabLayout的使用
到处找关于TabLayout的学习资料,有效的资料很少,可能是因为自身是新控件的原因吧,所以就自己花点时间多学下。这个控件一般不会单独存在,基本上所有的使用都要结合Fragment与ViewPager这两个控件来使用,我想我们还是由浅入深从最基本的显示入手。1 - TabLayout的最简单使用 第一步导包:File→Project Structure…→找到你的Module→denpendenc
2017-12-14 17:11:09
246
原创 视频播放框架 - Vitamio的使用
前言:Vitamio的中文名称为维他蜜,是一款Android 平台上的全能多媒体开发框架。能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 上支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播新手入门使用步骤:1.导包 去上面的新手入门网址中下载官方的Demo包,约60
2017-12-14 17:09:48
6965
原创 Fragment详细学习解析 - 更新完毕
本文目录: - 什么是Fragment - Fragment的生命周期 - Fragment的使用方式 - 什么是Fragment的回退栈?【重要】 - Fragment与Activity之间的通信【难点】 - Fragment与Activity通信的优化【超难点】 - 如何处理运行时配置发生变化【以屏幕翻转为例】 - 使用Arguments来创建Fragment【上班族的程序员看过
2017-12-14 17:08:43
618
原创 Android Studio配置SVN详解
【基于64位windows操作系统适用于win7/win10,win8与xp未测试】SVN:版本控制软件,是用来对编程项目管理的一个工具,这里不再赘述这里就详细的把利用Android Studio配置SVN的步骤以及问题详细说明一下:前言:SVN是一种版本控制软件,分为服务端和客户端,简单来说,服务端的作用就是存储项目,它提供了存放项目代码的功能以及仓库。客户端是程序员用来提交到服务端所使用的软件工
2017-12-14 17:07:02
2735
原创 网络数据读取框架 - OkHttp的使用
OkHttp框架介绍与用法作用 OkHttp主要用于对String这类的数据进行网络读取的操作,文件的上传,但在图片的缓存处理上不够好,需要手动设置缓存区使用【以Android Studio为例】一、添加OkHttp框架 Android Studio中File→Project Structure→找到对应的Module项目→Denpendencies→点击加号→Library Depend
2017-12-14 17:03:20
560
原创 观察者模式 - 由浅到更浅
前言关于观察者模式,经常提及,其实我们在项目开发过程中也经常用到,但是对于这个 东西一直不是很明朗,今天找了些资料做了个整理。以下是我对观察者模式的理解。我认为,观察者模式在实际运用中,绝大多数的情况都会牵扯到接口回调的结合使用。其中最明显的例子就是安卓开发中的点击事件。以button为例,当点击动作发生的时候,会立即走到点击事件监听的onClick方法中。这个现象不难理解,那么他是怎么实现的呢?
2017-08-15 15:36:20
308
原创 关于Spinner默认显示的文字布局属性与下拉显示的文字布局属性如何分别设置
先看效果图 在告警名称那个地方是一个searchablespinner,带有搜索的spinner控件,本质上还是spinner封装了一下,这个没什么好说的。 主要是在不展开的情况下,我需要让文字单行显示并且省略。可能是我的搜索方法问题没有找到比较好的方式,直到我偶然发现了一个方法。 直接上代码private void initSearchableSpinner() { Arr
2017-06-24 15:29:12
7501
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人