请教大佬图片缩放的问题,亟待解决。。。

Ande Wang 2019-10-14 02:27:58
朋友的缩放效果如下:


我现在图片的四个文字点击点如下:


现在我已经能实现朋友的那种缩放效果了,现在需要解决的是,当我的图片放大并移动到图片上四个文字位置后,会有点击事件出来,这个应该从何下手呢? 请教各位大佬 ..

我试过的方法是:在找到四个文字的中心点坐标及半径R,来画圆做事件响应区域,但是,图片的缩放效果就没有了。 一脸懵啊。。。
...全文
546 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ande Wang 2019-10-29
  • 打赏
  • 举报
回复
引用 20 楼 dtt15582369760 的回复:
把文字和图片五个成一体,这样就不会出现点击效果了吧
获取点击位置的手势坐标点,来判断是否在文字区域的坐标点方圆半径R内即可
dtt15582369760 2019-10-29
  • 打赏
  • 举报
回复
把文字和图片五个成一体,这样就不会出现点击效果了吧
汤姆比基尼 2019-10-22
  • 打赏
  • 举报
回复
引用 楼主 Ande Wang的回复:
朋友的缩放效果如下:


我现在图片的四个文字点击点如下:


现在我已经能实现朋友的那种缩放效果了,现在需要解决的是,当我的图片放大并移动到图片上四个文字位置后,会有点击事件出来,这个应该从何下手呢? 请教各位大佬 ..

我试过的方法是:在找到四个文字的中心点坐标及半径R,来画圆做事件响应区域,但是,图片的缩放效果就没有了。 一脸懵啊。。。
我博文有相关的图片处理代码及链接,希望可以帮到你
Ande Wang 2019-10-18
  • 打赏
  • 举报
回复
引用 13 楼 liu52113141589 的回复:
imageView的缩放是可以的,你想要什么效果?
我想要的效果是:图片在缩放之前有四个部位是需要响应按键事件,放大与平移图片到其中一个部位,单指点击并响应事件,现在就是在算这个坐标的问题。。
liu52113141589 2019-10-18
  • 打赏
  • 举报
回复
imageView的缩放是可以的,你想要什么效果?
怪力左手 2019-10-18
  • 打赏
  • 举报
回复
根据尺寸计算放大倍率,动态添加事件不用说了吧
Ande Wang 2019-10-18
  • 打赏
  • 举报
回复
引用 15 楼 怪力左手 的回复:
先加事件,再来找区域? 为什么不做成,放大后动态添加事件,缩小到阈值后取消事件,区域都不用算了。何必那么麻烦
大佬,因为在放大之前也要有四个点击区域的啊; 另外,你说的那个动态添加事件应该怎么下手呢? 请详细指导一下呗 。。。
怪力左手 2019-10-18
  • 打赏
  • 举报
回复
先加事件,再来找区域? 为什么不做成,放大后动态添加事件,缩小到阈值后取消事件,区域都不用算了。何必那么麻烦
day_moon 2019-10-17
  • 打赏
  • 举报
回复
你百度一下啊
Ande Wang 2019-10-17
  • 打赏
  • 举报
回复
引用 8 楼 day_moon 的回复:
用画布做,然后计算缩放的比例,根据比例来获取相应的点即可。
Hi 大佬 用画布做的话, 怎么来实现手势的缩放呢? 我现在是用的自定义ImageView ,缩放平移旋转什么的,都可以,就是我画的那四个点击区域坐标,缩放平移后,按照楼上大佬的指点:按钮坐标 = (缩放倍数 * a + 偏移量x, 缩放倍数 * b + 偏移量y),来获取点击区域坐标,是混乱的,没有根据想象中的还是在图片的点击区域里。。。
Ande Wang 2019-10-16
  • 打赏
  • 举报
回复
引用 6 楼 只为搞笑 的回复:
我简单写下公式算法嘛 假设图片宽度 w,高度 h,按钮相对于图片坐标为 (a, b),view的宽度w2, 高度 h2 1.当是1倍时,且我们的图片左上角是(0,0)时,按钮对应在View中坐标就是(a,b),这个应该很好理解吧 2.当是1倍时,如果图片偏移量是(x,y),那么按钮对应在view中的坐标就是(a+x, b+y),这个应该也没问题吧 下面再推断 3.当是2倍时,且我们图片左上角是(0,0)时,按钮对应在View中的坐标是(2a,2b), 4.当是2倍时,且图片偏移量是(x,y),那么按钮对应View中的坐标是(2a+x,2b+y) 这时候应该比较清楚了,按钮坐标 = (缩放倍数 * a + 偏移量x, 缩放倍数 * b + 偏移量y) 最后计算出按钮中心坐标后,记得判断距离时也要乘以倍数。比如你的按钮1倍时判断距离时5,那么2倍时应该是10才能匹配点击范围
好的 , 明白了 谢谢大佬 灰常感谢帮助小白的我。。
只为搞笑 2019-10-16
  • 打赏
  • 举报
回复
我简单写下公式算法嘛 假设图片宽度 w,高度 h,按钮相对于图片坐标为 (a, b),view的宽度w2, 高度 h2 1.当是1倍时,且我们的图片左上角是(0,0)时,按钮对应在View中坐标就是(a,b),这个应该很好理解吧 2.当是1倍时,如果图片偏移量是(x,y),那么按钮对应在view中的坐标就是(a+x, b+y),这个应该也没问题吧 下面再推断 3.当是2倍时,且我们图片左上角是(0,0)时,按钮对应在View中的坐标是(2a,2b), 4.当是2倍时,且图片偏移量是(x,y),那么按钮对应View中的坐标是(2a+x,2b+y) 这时候应该比较清楚了,按钮坐标 = (缩放倍数 * a + 偏移量x, 缩放倍数 * b + 偏移量y) 最后计算出按钮中心坐标后,记得判断距离时也要乘以倍数。比如你的按钮1倍时判断距离时5,那么2倍时应该是10才能匹配点击范围
Ande Wang 2019-10-16
  • 打赏
  • 举报
回复
引用 1 楼 只为搞笑 的回复:
在缩放的情况下,你还需要根据缩放倍数和滚动偏移量来计算按钮中心点,同时判断到中心点的最大距离也需要同时根据倍数增加哦。
感谢大佬的指点。 我看到大佬 的回复后就觉得按照你的这个指点来做,应该是能实现需求的,现在是,我不会利用缩放倍数和滚动偏移量来计算画圆的中心点,能否请大佬,写一个伪代码来参考一下好吗? 拜托
Ande Wang 2019-10-16
  • 打赏
  • 举报
回复
引用 3 楼 王能 的回复:
自定义做圆计算时不要拦截手势,应该由图片缩放来回调你的计算逻辑,不然你拦截了事件图片就得不到了
好的 谢谢
day_moon 2019-10-16
  • 打赏
  • 举报
回复
用画布做,然后计算缩放的比例,根据比例来获取相应的点即可。
王能 2019-10-15
  • 打赏
  • 举报
回复
自定义做圆计算时不要拦截手势,应该由图片缩放来回调你的计算逻辑,不然你拦截了事件图片就得不到了
Ande Wang 2019-10-15
  • 打赏
  • 举报
回复
请问大佬,我用画布来把上面的小车图片和文字都画出来,然后再让它随手势缩放与平移,应该要考虑哪些方面的问题?
只为搞笑 2019-10-14
  • 打赏
  • 举报
回复
在缩放的情况下,你还需要根据缩放倍数和滚动偏移量来计算按钮中心点,同时判断到中心点的最大距离也需要同时根据倍数增加哦。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧