美图秀秀拼图效果是如何作的,大牛讲解一下思路呗!!!

sunmable 2011-08-23 11:03:45



先谢谢了。分分大的。
...全文
519 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunmable 2011-08-31
  • 打赏
  • 举报
回复
你在旋转的过程中可以将view放大,这样你的图片就不会因为view的rec问题苦恼了。

至于图片遮挡你可以设置一下view.setfont......让选重的图片在上面,这样就可以让用户选择
遮挡哪一张图片了。这样也不是什么难解问题。

PS:可能是结贴的时候刚睡醒,如有不到之外见量
PS:其实我比你还惨,回别人贴都不结贴。唉.....
dinko321 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sunmable 的回复:]

没有遇见过这种需求,
真的不好说,也说不好。

对view进行旋转,这个问题还真的没有想过,

不过有一种思路,就是给它画一个透明背景,然后再给它上面加一个图片,这样对view的操作可以
欺诈性的转变成对drawable的操作了。

不知道是不是可行,毕竟自己没有作过对view旋转的操作。
[/Quote]

反正我之前做类似的东西的时候,在旋转这个地方,都是自己写了一个view,用ondraw()重新绘制的

我的结果是,View不能旋转,只能旋转图像

但是这里有个问题,android的view是矩形的,也就是说如果你把里面的图片旋转了,比如说是菱形吧,但是如果你放到imageView里面,那个view他也是矩形,只不过是一个更大的矩形包裹了里面图片的那个菱形。

如果只是一般的显示什么的是没问题的,但是如果涉及到点击的响应,这里就有问题了,因为你图片外面有很大一部分区域都还是属于这个view的,这个view就会截获点击消息

尤其是像你上面的那个情况,图与图直接很可能涉及到叠加关系




为了解决这个问题,肯定还是自己自己写view 自己 draw ,自己处理消息响应


于是又回到了我2L的答案





PS:我对你无满意结贴非常不满
sunmable 2011-08-31
  • 打赏
  • 举报
回复
没有遇见过这种需求,
真的不好说,也说不好。

对view进行旋转,这个问题还真的没有想过,

不过有一种思路,就是给它画一个透明背景,然后再给它上面加一个图片,这样对view的操作可以
欺诈性的转变成对drawable的操作了。

不知道是不是可行,毕竟自己没有作过对view旋转的操作。
dinko321 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sunmable 的回复:]

放大缩小图片拖动这些都是小功能,你在它手动的listener中加就可了。

到现在为止我没有用过旋转。

感觉没鸭梨
[/Quote]

listener 里面可以直接旋转图片 ?? 不用自己处理 ??
sunmable 2011-08-31
  • 打赏
  • 举报
回复
放大缩小图片拖动这些都是小功能,你在它手动的listener中加就可了。

到现在为止我没有用过旋转。

感觉没鸭梨
dinko321 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunmable 的回复:]

不是重新布局,view有一个方法是view.lay(l,t,r,b).

只须要在move事件中实现这个方法就可以了。关键在于这的参数
[/Quote]

你直接lay过去,不需要处理他旋转什么的么。。。。不需要处理他放大缩小什么的么。。。。。
dinko321 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sunmable 的回复:]


呵呵,我对重写View时候的ondraw的操作不是很好,通过上面几贴认为你对这一方面比较有心德。留下QQ有空多交流。

QQ:11304387154
[/Quote]

心得谈不上,只是干过类似的事情而已。。。。

而且我不用QQ。。。。。为了抵制企鹅。。。。


就CSDN留言吧。。。。
sunmable 2011-08-31
  • 打赏
  • 举报
回复

呵呵,我对重写View时候的ondraw的操作不是很好,通过上面几贴认为你对这一方面比较有心德。留下QQ有空多交流。

QQ:11304387154

dinko321 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sunmable 的回复:]

我的放大拖动都是在touch事件中作的,我只是取imageview的drawable中的矩阵。对矩阵进行操作

大体是这样实现的:
view的拖动是view的touchlistener
图片的旋转绽放是drawable的touchlistener

当想拖动的时候必须长按,这样一来如果用户想操作图片的时候必须单击drawable
而drawable中有我们常用的zoom,drag事……
[/Quote]

我找到了。。。。原来imageView还有 getImageMatrix 和 setImageMatrix 可以用。。。

这样的话单纯的旋转缩放就方便多了。。。。
dinko321 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sunmable 的回复:]

我的放大拖动都是在touch事件中作的,我只是取imageview的drawable中的矩阵。对矩阵进行操作

[/Quote]

这个是怎么操作的,求指教,求代码。。。
sunmable 2011-08-31
  • 打赏
  • 举报
回复
我的放大拖动都是在touch事件中作的,我只是取imageview的drawable中的矩阵。对矩阵进行操作

大体是这样实现的:
view的拖动是view的touchlistener
图片的旋转绽放是drawable的touchlistener

当想拖动的时候必须长按,这样一来如果用户想操作图片的时候必须单击drawable
而drawable中有我们常用的zoom,drag事件大体就是这样

至于你说的:
<!--
如果你判断点击之后,再调用具体对应的view的setfront,就是你自己在处理消息响应了,用控件的本意是什么,就是让系统处理这些麻烦的东西-->这种情况我也不知道怎么办可能是自己没有遇到这样的需求吧!!!
dinko321 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sunmable 的回复:]
你在旋转的过程中可以将view放大,这样你的图片就不会因为view的rec问题苦恼了。
[/Quote]
view的大小不是问题,问题是你必须通过onDraw来解决旋转和缩放,到头来还是要自己draw,而不是你说的直接listener就行了

[Quote=引用 11 楼 sunmable 的回复:]
至于图片遮挡你可以设置一下view.setfont......让选重的图片在上面,这样就可以让用户选择
遮挡哪一张图片了。这样也不是什么难解问题。
[/Quote]
当多个图片的透明区域叠加在一起的时候呢?
问题是你根本不知道他想点的是哪一张,而且有时候也不是想让他放在上面,比如你上面那个截图,我可能只是想拖他到另外一个位置,但是拖动被上面一个view的透明区域截获了
而且,如果你判断点击之后,再调用具体对应的view的setfront,就是你自己在处理消息响应了,用控件的本意是什么,就是让系统处理这些麻烦的东西
[Quote=引用 11 楼 sunmable 的回复:]
PS:可能是结贴的时候刚睡醒,如有不到之外见量
PS:其实我比你还惨,回别人贴都不结贴。唉.....
[/Quote]
我觉得在确实没找到合理的解决,或者不能证明别人的方法是错的时候,这个是比较靠谱的行为。。。我也还压了几个帖子没结
sunmable 2011-08-30
  • 打赏
  • 举报
回复
不是重新布局,view有一个方法是view.lay(l,t,r,b).

只须要在move事件中实现这个方法就可以了。关键在于这的参数
dinko321 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sunmable 的回复:]

我艹,这个效果无意间实现了。不算难,它用的是二次布局。

一楼二楼都不对......
[/Quote]

你的意思是在程序中用代码重新布局么?
sunmable 2011-08-30
  • 打赏
  • 举报
回复
我艹,这个效果无意间实现了。不算难,它用的是二次布局。

一楼二楼都不对......
dinko321 2011-08-23
  • 打赏
  • 举报
回复
我觉得,就是自己画的

比如你先有一个背景模板,上面定义了选中的图片应该出现在哪个位置,以什么形式出现

然后再把选中的图片draw上去
辽东小小 2011-08-23
  • 打赏
  • 举报
回复
期待 牛人解释!

80,472

社区成员

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

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