为了账号安全,请及时绑定邮箱和手机立即绑定
run方法中的else 感觉没有必要
@garyxt 我就问你最后结果是不是得到了图片的四点坐标 并且存放到RectF 中了 ?
就是通过这个方法来做的
并不需要单独去实现onTouchListener ,也不需要设置setOntouchListener 。这是View本身的方法。直接重写onTouchEvent即可。setOnTouchListener是提供外部类去调用的。虽然这么写也没错,但是这块老师有点画蛇添足啦~~
老师免费视频给你们讲课,你们还挑三拣四的,不喜欢听的就滚,听不懂的自己去多理解理解。自己水平不够,不要怪老师讲得不行。好比你上大学听高数,老师总不能从1+1讲起吧?
讲得很好!
讲得很好!
谢谢,学到很多东西了,虽然算法有点绕脑自己多想想就好了!比起网上一搜一大把但又很并卵的博客好多了!笔芯
看不懂还怪人家讲的不好。有时间评论不如多写点代码。/摊手+滑稽
if (dWidth > width && dHeight < height) {
……
}
if (dWidth < width && dHeight > height) {
……
}
if ((dWidth > width && dHeight > height) || (dWidth < width && dHeight < height)) {
……
}
亲测,可以直接
scale = Math.min(width * 1.0f / dWidth, height * 1.0f / dHeight);
鸿洋大神!鸿洋大神!鸿洋大神!!!
我觉得会用matrix、ScaleGestureDetector就行了,业务逻辑因人而异 大家都能写出自己的逻辑 效率好坏而已 况且老师的也不见得是最好的 这种程度的逻辑完全不用听老师的;ps:个人发现onScale中return true阻止事件传递这个蛮有意思,若false检测为一次传递 scaleFactor的值变动很大(相对于手指初始点击比例);return true的原因就是阻止传递,ScaleGestureDetector的onscale认为事件多次执行,每次比例均为本次检测时的currentSpan 我觉得如果只要老师代码 绝对会忽略了这些内容(这个确实该讲啊)
关于rectF.set(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());的问题,我怀疑洋神是否真的清楚其中的本质。
d.getIntrinsicWidth()/height()的值只要图片不变,其结果永远不变。rectF.set()和mScaleMatrix.mapRect(rectF)会将图片现有的Matrix和IntrinsicWidth/height做一个映射计算,具体算法我说不清楚,数学不好。结果就是将图片以像素为单位的边界存放到RectF当中。这样才能做到图片的边界与空间宽高(以像素为单位)对应,从而正确计算。
这种算法是有问题的。应该先把图片的宽高比和控件的宽高比作比较,决定图片缩放是适应宽还是适应高,算出缩放比,把另一条边根据缩放比进行缩放,剧中就可以了。这样穷举很有问题。
对于赞数高的zttbill同学的说法,老师的缩放不是倍数,是比例,你说的缩小2倍,在代码里是乘上0.5,不是除以2,所以说“选择小的比例”意思是选择比例值小的,那么相乘后当然就是更加缩小的
看完视频写的代码,以及应用Demo:http://blog.csdn.net/qasimcyrus/article/details/53109037
课程须知
本课程是基于Android开发的案例,需要大家对Android的了解要达到小成的境界: 1、掌握自定义控件的流程。 2、熟悉常用的控件以及API。 3、对手势检测相关API有一定的了解。
老师告诉你能学到什么?
1、Matrix的介绍与实战。 2、ScaleGestureDetector的介绍与实战。 3、GestureDetector的介绍与实战。 4、自定义控件中如何与用户交互。 5、自定义控件中如何实现友好的过渡效果。 6、与ViewPager结合使用时的冲突处理。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消