-
[目录]Android自定义View教程
一个从零起步的自定义View教程。
本教程从最基础的内容讲解,并且深入到了相关的各个细节,不论你是刚入门的菜鸟,还是有一定经验的工程师相信本系列文章都会对你有所帮助。 你可以将本教程当作学习资料来学习自定义View相关的各种知识,也可以作为工具来使用,在需要的时候查询相关的一些知识细节。
-
[目录]雕虫晓技
简单技术的深度挖掘,从简单中发现不简单
雕虫晓技这一系列文章的定位为杂谈,因此你会发现里面不仅有 Android 相关技术,还有一些乱七八糟的工具推荐,一些与开发相关的小技巧,同时也会包括一些个人杂谈等内容。
-
安卓自定义View进阶-画笔基础(Paint)
在Android自定义View系列文章中,前面的部分有详细的讲解画布(Canvas)的功能和用法,但是和画布(Canvas)共同出现的画笔(Paint)却没有详细的讲解,本文带大家较为详细的了解一下画笔的相关内容。 Paint 在英文中作为名词时主要含义是涂料,油漆,颜料的意思,作为动词则具有绘画、粉刷的意思,不过在程序相关的中文博客里面,Paint 通常被解释为画笔,本文也将采用这种翻译,因此本文里面提到的画笔如没有特殊表明就指代 Paint。0.引子通过本系列前面的文章知道,View 上的内容是通过 C...…
-
雕虫晓技(十) Android超简单气泡效果
【示例项目:BubbleSample】最近有用到水下气泡上升效果,因此在网上查了一下资料,结果还真找到了,就是这篇文章 [Android实例] 水下气泡上升界面效果, 不过这篇文章所附带的示例代码是有些问题的,例如View移除后,线程没有正确关闭,锁屏后再打开屏幕,气泡会挤成一团等问题,因此我在它的原理基础上稍为进行了一些调整和修改,解决了这些问题,它可以实现下面这样的效果:0. 基本原理气泡效果的基本原理非常简单,其实所谓的气泡就是一个个的半透明圆而已,它的基本逻辑如下: 如果当前圆的数量没有超过数量上限...…
-
ArcSeekBar(圆弧拖动条)
GitHub项目地址: https://github.com/GcsSloop/arc-seekbar这个是在公司项目中准备使用的一个控件,本准备直接在网上搜一个用,可惜找到的很多都是 ProgressBar,并不具备拖拽功能,于是自己动手实现了一个,其功能和特性均仿照 SeekBar 进行设计。效果预览支持的特性 进度功能。 自定义属性配置。 线条宽度。 开口角度。 旋转角度。 渐变色。 最大进度值。 拖动按钮颜色、大小、样式(填充、描边、填充+描边)。 状态变化回调。主要文件 ...…
-
雕虫晓技(九) Netty与私有协议框架
关于作者GcsSloop,一名 2.5 次元魔法师。微博 | GitHub | 博客1.前言【本文示例源码下载】在本系列的前一篇,说了 Android 与数据流的斗争,主要是 Android 前端自身处理方案。这一篇则是涉及一些前后端方面的数据传输的问题。通常来说,Android 和服务端之间的数据传输都会采用标准协议规范,且大多数是基于 HTTP 协议的,例如在Android端最常用的 Retrofit,则是 RESTful 风格的一套网络框架。虽然这是我们最常用的框架之一,但是很多人对该框架了解并不是特别...…
-
雕虫晓技(八) Android与数据流的斗争
关于作者GcsSloop,一名 2.5 次元魔法师。微博 | GitHub | 博客本文并没有什么实质性的内容,只是自己工作和学习这段时间的一些经验杂谈,仅从自己的角度阐述一下自己观察到的一些内容,可能并不全面,也不一定正确,仅供大家参考一下。目前 Android 开发,从广义上来说可以划为前端的一部分,毕竟大部分 Android 开发所做的工作就是从服务器获取数据,将这些数据用合适的方式展示给用户,再把用户操作产生的数据传递给服务器。在这样的情境下 Android 开发所需要解决的一个核心问题就是数据的传递...…
-
安卓自定义View进阶-缩放手势检测(ScaleGestureDecetor)
0. 前言Android 缩放手势检测,ScaleGestureDetector 相关内容的用法和注意事项,本文依旧属于事件处理这一体系,在大多数的情况下,缩放手势都不是单独存在的,需要配合其它的手势来使用,所以推荐配合 手势检测(GestureDetector) 一起观看。如果是用在自定义的控件上,则需要配合 Matrix 相关内容使用起来可能会更加方便,如果对 Matrix 不太熟悉也可以看本系列文章之前的内容来补充一下相关知识。如果你没看过之前的文章,可以到 自定义 View 系列 来查看这些内容。缩放...…
-
雕虫晓技(七) 用旧Android手机做远程摄像头
关于作者GcsSloop,一名 2.5 次元魔法师。微博 | GitHub | 博客0. 前言科技发展越来越快,手机也换的越来越频繁,有很多旧手机都被淘汰了,这些旧手机一般没什么用,也不能卖,毕竟手机中可能还存在着一些私人数据可能没有清空,因此这些旧手机就只能放在家里落灰了。对于大多数人来说,这些旧手机都是无法被利用起来的,虽然网上有很多的利用旧手机的教程,但很多要么是很鸡肋,要么是操作难度较高,需要较强的动手能力。那么今天呢,就教大家如何低成本的快速将旧 Android 手机变成一个可远程访问的摄像头。本文...…
-
[专栏]雕虫晓技(六) 网格分页布局源码解析(下)
0. 前言pager-layoutmanager: https://github.com/GcsSloop/pager-layoutmanager在网格分页布局源码解析(上)中,主要分享了如何定义一个网格布局,正常运行的效果看起来其实和 GridLayoutManager 有些类似。这是它的下篇,主要讲解如何让它滑动时一页一页的滚动,而不是随意的滚动,除此之外,还包括一些其他相关内容,例如滚动、平滑滚动和超长距离滚动需要注意的一些细节。1. 分页对齐在开始讲解前,先看一下启用了分页对齐和未启用分页对齐的效果有...…
-
[专栏]雕虫晓技(五) 网格分页布局源码解析(上)
关于作者GcsSloop,一名 2.5 次元魔法师。微博 | GitHub | 博客0.前言pager-layoutmanager: https://github.com/GcsSloop/pager-layoutmanager这个是我之前公开分享的一个开源库 【PagerLayoutManager(网格分页布局)】 的详细解析,在开始讲解之前,先看看它能实现的一些效果。 上面是它的应用场景之一,再看一下实现这种场景所需的代码:// 布局管理器PagerGridLayoutManager layoutMana...…
-
雕虫晓技(四) 搭建私有Maven仓库(带容灾备份)
关于作者GcsSloop,一名 2.5 次元魔法师。微博 | GitHub | 博客0. 前言随着 Android 开发的发展,Android 开发也相对越来越简单,很多基础库只用简单的添加一行依赖就可以使用了,不用自己去手动添加,升级也只需要修改一下版本号,简单便捷。那么它是如何实现的呢?事实上,我们所依赖的这些文件,是存放在一些公开仓库中的,当我们添加这些依赖时,Gredle 会自动去仓库中查找是否存在,如果存在,就下载下来放到本地参与编译。我们最常用的一些公开库大部分是放在 jcenter 仓库中的,我...…