Android 中的 3D 轮播
Posted
技术标签:
【中文标题】Android 中的 3D 轮播【英文标题】:3D Carousel in Android 【发布时间】:2014-01-19 22:53:58 【问题描述】:我正在为 android 开发 3D Carousel。
我正在使用这个code,以下是我当前的输出。
我想开发以下 3D 形状的旋转木马。
我参考了 SO 中已经提出的以下问题。
How to do 3d Carousel with modifications in image's dimensions and angle
How to create list with carousel effect in android
how to increase carousel image space?
Coverflow Carousel effect same as iPhone/iPad in android
以下内容接近我的要求:
-
Using 3d Carousel project to create SPB Carousel style
从这里我回答我说:
mCamera.rotateY(-((CarouselItem) child).getCurrentAngle());
在Carousel.java
的getChildStaticTransformation()
方法中,但我没有得到完美的结果。
请帮我解决。
【问题讨论】:
你能把完整的代码上传到github或类似的地方让我看看吗? 我也在寻找类似的东西。滚动速度在这里也应该是一个问题,因为提到的 3d 轮播项目即使在很小的滚动上也有一些极快的滚动速度。 这个周末我会看看这个问题,Insha Allah。 你想做什么?我得到了你所做的,但不是你想要做的,问题不清楚。 旋转必须依赖于角度的正弦,所以乘以Math.sin(angle)
【参考方案1】:
您正在使用一个名为 Calculate3DPosition 的函数,该函数从角度计算 X、Y、Z 位置,然后在 matrix.translate 调用中使用这些位置。
您需要的实际上要简单得多 - 您只需要使用角度调用 matrix.rotate 即可。完成后它可能看起来非常简单,但老实说,您复制的 3D 代码中唯一的复杂性是试图让所有东西都面向用户而不是让它旋转......
【讨论】:
以上是关于Android 中的 3D 轮播的主要内容,如果未能解决你的问题,请参考以下文章