-
安卓自定义View进阶-特殊控件的事件处理方案
本文带大家了解 Android 特殊形状控件的事件处理方式,主要是利用了 Region 和 Matrix 的一些方法,超级实用的事件处理方案,相信看完本篇之后,任何奇葩控件的事件处理都会变得十分简单。不得不说,Android 对事件体系封装的非常棒,即便对事件体系不太了解的人,只要简单的调用方法就能使用,而且具有防呆设计,能够保证事件流的完整性和统一性,最大可能性的避免了事件处理的混乱,着实令人佩服。然而世界上并没有绝对完美的东西,当”事件处理”遇上”自定义View”,一场好戏就开演了。特殊形状控件在通常的情...…
-
Markdown实用技巧-链接和图片
Sloop 喝过半杯咖啡,涨红的脸色渐渐复了原,旁人便又问道,“ Sloop,你当真会写文章么?” Sloop 看着问他的人,显出不屑置辩的神气。他们便接着说道,“你怎的连半个赞也捞不到呢?” Sloop 立刻显出颓唐不安模样,脸上笼上了一层灰色,嘴里说些话;这回可是全是技术名词之类,一些不懂了。在这时候,众人也都哄笑起来:办公室内外充满了快活的空气。在这些时候,我可以附和着笑,老板是决不责备的。而且老板见了 Sloop,也每每这样问他,引人发笑。Sloop 自己知道不能和他们谈天,便只好向实习生说话。有一回...…
-
安卓自定义View进阶-MotionEvent详解
Android MotionEvent 详解,之前用了两篇文章 事件分发机制原理 和 事件分发机制详解 来讲解事件分发,而作为事件分发主角之一的 MotionEvent 并没有过多的说明,本文就带大家了解 MotionEvent 的相关内容,简要介绍触摸事件,主要包括 单点触控、多点触控、鼠标事件 以及 getAction() 和 getActionMasked() 的区别。Android 将所有的输入事件都放在了 MotionEvent 中,随着安卓的不断发展壮大,MotionEvent 也开始变得越来越复...…
-
Markdown实用技巧-基础语法
本文为 Markdown实用技巧 系列的基础文章,并没有不可描述的内容 (⊙ω⊙)为保证语法兼容性,本文只介绍基础语法,扩展语法等其它内容,会在后续的文章中单独介绍。注意:所有的标记符号均使用英文,中文无效。标题Markdown 支持多种标题格式。利用 = (等号)和 -(减号)可以定义一级标题和二级标题,(任何数量的 = 和 - 都有效果) : Markdown 预览 一级标题==== 一级标题 二级标题---- ...…
-
Markdown实用技巧-快速入门
本文为 Markdown实用技巧 系列的基础文章,并没有不可描述的内容 (⊙ω⊙)自从接触了 Markdown 之后,就一直用 Markdown 作为自己的主要书写工具,不论是平时做一些简单的纪录,还是用来写博客,写文档都是非常方便。你现在看到的这篇文章就是用 Markdown 进行书写的。 我最早因为 GitHub 而了解到 Markdown,当时支持 Markdown 的平台并不多,现在很多平台都已经开始支持 Markdown了,不论是老牌的 CSDN 还是比较新的 简书、掘金、DiyCode 等都支持...…
-
安卓自定义View进阶-事件分发机制详解
Android 事件分发机制详解,在上一篇文章 事件分发机制原理 中简要分析了一下事件分发机制的原理,原理是十分简单的,一句话就能总结:责任链模式,事件层层传递,直到被消费。 虽然原理简单,但是随着 Android 不断的发展,实际运用场景也越来越复杂,所以想要彻底玩转事件分发机制还需要一定技巧,本篇事件分发机制详解将带大家了解 … 你以为我接下来要讲源码?我就不按套路,所有的源码都是为了适应具体的应用场景而写的,只要能够理解运用场景,理解源码也就十分简单了。所以本篇的核心问题是:正确理解在实际场景中事件分...…
-
让脚本说话"厉害了我的哥"
前段时间发现 Mac 上一个有趣的方法可以让系统说话。例如在终端输入:say "厉害了我的哥"于是把我自己经常使用的图片压缩脚本升了一下级,人工(智能)语音提示,开启装逼新时代! 本次升级进行了平台安全判断,不会影响其它平台用户的正常使用。在 Mac 上,它说话同时输出信息,在其他平台上只会输出信息。语音提示默认开启,可以关闭语音提示,将源码中voice设置为 False 即关闭语音提示。voice = False # 是否语音提示想要调教输出内容的自己进源文件修改吧,代码量不到一百行,短小精悍,纯种 P...…
-
安卓自定义View进阶-事件分发机制原理
之前讲解了很多与View绘图相关的知识,你可以在 安卓自定义View教程目录 中查看到这些文章,如果你理解了这些文章,那么至少2D绘图部分不是难题了,大部分的需求都能满足,但是关于View还有很多知识点,例如: 让绘图更加炫酷的Paint,让View动起来的动画,与用户交互的触控事件 等一系列内容。本次就带大家简单的了解一下与交互息息相关的东西-事件分发原理。 本次魔法小火车的终点站是事件分发,请各位魔法师带好装备,准备登车启程。注意:本文中所有源码分析部分均基于 API23(Android 6.0) 版本...…
-
程序员不可不知的版权协议
前一段时间知乎上关于版权问题的讨论有不少,例如这个 新浪微博上的「知乎大神」是谁?涉嫌侵权吗?, 而且最近喜马拉雅FM也因为背景音乐版权问题导致很多栏目被下架和推迟更新,而我作为一个喜欢分享的魔法师,也遇到过一些版权相关方面的问题,刚好借此机会向大家科普一下开源协议和知识共享协议。开源协议相信很多小伙伴在开发的时候都默认遵循 不重复造轮子(偷懒) 这一原则,只要有了思路就马上在GitHub搜索一下,看看是否有人已经做了,如果已经有做好的,自然就不客气啦,拿过来修改一下就能用,不由得心中暗喜,又省了好多时间能用...…
-
安卓自定义View进阶-Matrix Camera
本篇依旧属于Matrix,主要讲解Camera,Android下有很多相机应用,其中的美颜相机更是不少,不过今天这个Camera可不是我们平时拍照的那个相机,而是graphic包下的Camera,专业给View拍照的相机,不过既然是相机,作用都是类似的,主要是将3D的内容拍扁变成2D的内容。众所周知,我们的手机屏幕是一个2D的平面,所以也没办法直接显示3D的信息,因此我们看到的所有3D效果都是3D在2D平面的投影而已,而本文中的Camera主要作用就是这个,将3D信息转换为2D平面上的投影,实际上这个类更像是...…