11

我需要像图片中那样实现一个类似轮子的控制(老虎机)。

在此处输入图像描述

但是需要对每个项目的边缘(项目之间的位置)进行平滑处理,使其看起来像地球一样的地球。这是从 iPhone 库中获取的 iPhone 应用程序的屏幕截图。我想要它在android中。我检查了 kankan 轮(Android 轮),但它不能满足我的需要。然而,我需要它的循环行为。我还检查了以下链接。

http://developer.sonymobile.com/2010/06/23/android-tutorial-making-your-own-3d-list-part-3/

我玩过画布和矩阵,其中一些值用于方法 pretranslate post translate scale 等。但我不知道它是如何工作的,它对倾斜的特定值会产生什么影响等。当我与 UI 设计师讨论时,他们告诉我要实现此屏幕设计,请使用“倾斜”或“透视”属性。但我不知道如何在 android 中对图像进行倾斜或应用透视。我尝试在自定义列表视图的 on drawChild() 方法中应用一些值来倾斜(使用此链接的列表视图实现http://developer.sonymobile.com/2010/06/23/android-tutorial-making -your-own-3d-list-part-3/ ) 。但视图变得不可见。

我不能使用矩阵的缩放行为,因为它会在每个子视图之间插入间隙。

我还需要知道如何实现以下行为。需求是

  1. 一旦用户尝试滚动,它将检查阈值并仅在阈值高于配置的阈值时才滚动。

  2. 项目循环滚动,从某种意义上说,在最后一个项目之后,轮子显示第一个项目,依此类推。如果只有一项,则轮子应填满单项。

  3. 滚动视图后,所有触摸都将被禁用,直到滚轮结束。

  4. 滚轮应该滚动指定的时间(从后端计算礼物并确定哪个项目应该位于视图的中心。

  5. 当我们使用 setSelected() 或 setSelection() 方法设置要选择的项目时,如 kankan wheel 演示(Android 轮子),轮子应该逐渐减速到指定位置,而不是立即停止轮子到该位置。

4

4 回答 4

1

在此处输入图像描述

试试这个,如图所示保留 6 个视图 5 个,保留一个。当视图 1 超出范围时,保留视图与下一个图像一起出现,并且视图 1 成为保留视图,类似地,您应该根据需要多次渲染循环。

The width grows while it moves from bottom to center and shrinks when it rolls towards top

于 2013-11-15T19:05:24.580 回答
1

我不知道你离实现目标有多近,但你可能想跳过使用 android 类并使用 3d 引擎,如 cocos 3d for android。导入模型并使其在正确的位置可点击,所有这些东西都会为你抽象出来,这样你就不会花时间在其他事情上搞砸了。

于 2013-11-14T20:05:17.973 回答
1

对于透视图,请查看http://developer.android.com/reference/android/graphics/Camera.html

您设置相机的位置,然后获取矩阵,并使用它来绘制图像。它将为您设置倾斜和缩放。

于 2013-11-10T19:03:42.450 回答
0

你见过这个吗?您也许可以调整它,但它至少是一个起点https://code.google.com/p/android-wheel/

更新:该项目已移至github

于 2013-11-13T14:44:05.690 回答