Created with Sketch.
Created with Sketch.
首页
发现
小书
登录
注册
×
注册小专栏
通过微信登录
通过微博登录
通过Github登录
通过邮箱
注册
、
登录
友情提示
Login FAQ
.
×
邮箱登录
通过微信、微博、Github 登录
登录
×
邮箱注册
通过微信、微博、Github 登录
注册
icon_photo_1
Created with Sketch.
GcsSloop
嗨,我是GcsSloop,一名来自2.5次元的魔法师,Android自定义View系列文章作者,非著名程序员。欢迎来到我的魔法世界!
100 / 140
嗨,我是GcsSloop,一名来自2.5次元的魔法师,Android自定义View系列文章作者,非著名程序员。欢迎来到我的魔法世界!
关注 14
被关注 287
获得赞 86
Created with Sketch.
Created with Sketch.
Created with Sketch.
Created with Sketch.
Created with Sketch.
Created with Sketch.
+ 关注
取消
确定
个人书籍
个人专栏
雕虫晓技
简单技术的深度挖掘,从简单中发现不简单。
已发表 12
订阅数 127
安卓自定义 View 教程
这是一个从零起步,从入门到懵逼的自定义View教程。本教程从最基础的内容讲解,并且深入到了相关的各个细节,不论你是...
已发表 19
订阅数 87
Android 面试指南2019
每个公司都会因为产品形态不一样,对工程师的技术要求的侧重点会不一样,Android 面试指南是来自一线互联网公司工...
已发表 35
订阅数 1521
文章
订阅
回复
喜欢
GcsSloop
#1楼 @李 京 关于 MVP 和 MVVM 可以看一下这篇文章:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
GcsSloop
#2楼 @光羽隼 本来就是要在变换之后回到原点的。 在 3D 变换中,所有操作都是基于Camera的,但是Camera在原点,即画布左上角。 如果需要基于中心变换,则需要这样操作。 1. 平移画布,让画布中心和Camera所在位置对齐。(translate(-centerX, -centerY);) 2. 进行变换操作。(各种操作) 3. 平移画布,让画布回到原来的位置。(translate(centerX, centerY);) 但目前但问题是,我们在拿到matrix之前,就已经执行过操作了,即先执行了第2步。 所以需要在所有操作结束后,通过preTranslate插入一个前乘操作,相当于插入上面的第1步。 再通过postTranslate插入一个后乘操作,相当于插入上面的第3步。 这里实际上是通过pre和post来控制乘法顺序。
GcsSloop
#3楼 @光羽隼 文中示例代码应该是有这个判断的。 case MotionEvent.ACTION_UP: case MotionEvent.ACTION_POINTER_UP: // ▼ 判断是否是第一个手指 if (event.getPointerId(event.getActionIndex()) == 0){ canDrag = false; } break;
GcsSloop
#1楼 @爱慕♡ (⁎⁍̴̛ᴗ⁍̴̛⁎)
GcsSloop
#6楼 @Siact29 谢谢建议,暂时工作太忙,连写文章的时间都比较少了,没有更多的精力去做视频,以后如果时间比较充裕的话,会尝试做一些视频类教程的。(>^ω^<)
GcsSloop
#3楼 @Siact29 谢谢(^з^)-☆
GcsSloop
#1楼 @叁肆 谢谢 ( ´▽`)
GcsSloop
#4楼 @邹江 坐标数据用矩阵转换过吗?使用全局坐标 RawX,RawY 是为了方便使用 Canvas 的矩阵进行转换。如果没有对 Canvas 的坐标系进行过平移、缩放等操作,那么使用局部坐标系 X,Y 最终结果和 Canvas 中坐标是相同的,但是如果执行过平移、缩放操作,那么直接使用局部坐标系是会出现问题的,需要进行坐标转换。在标准的 Android 设计中是这样的,当然,也有可能某些国产系统对坐标系这一块规则进行了修改,可以用“画布变换后坐标转换问题”中的第一个示例代码测试一下,是否符合文中描述的情况。
GcsSloop
#1楼 @光羽隼 故意的,global大一点没关系,千万不能小了,你可以设置小一点试试。
GcsSloop
#1楼 @ArnoFrost 后面的数值代表的是实际测量结果即 1080,上下文中有说明,我们在三种模式下直接拿到的数值是前面和后面连接起来的,例如下面这样子。 00000000000000000000001111011000 01000000000000000000001111011000 10000000000000000000001111011000
GcsSloop
#2楼 @Krido 只是为了方便确定圆的半径,让圆占用的大小始终比View小一点,留一点空白比较好看而已。
GcsSloop
#1楼 @大野牛 应该是转换问题,在上传过程中图片转换错误了,我试试能不能改回来。
GcsSloop
#1楼 @lll53 祝君好运 d(^_^o)
GcsSloop
#2楼 @jokermonn 上海移云信息科技。
top
Created with Sketch.