我需要实现一个像图片中展示的轮盘控件(即老虎机)。
但是每个选项之间的边缘需要平滑,使其看起来像地球一样圆。这是iOS应用程序从库中获得的屏幕截图。我想在Android上实现。我查看了kankan wheel(Android轮盘),但它不能满足我的需求。不过它的循环行为对我有帮助。我也查看了下面这个链接:
http://developer.sonymobile.com/2010/06/23/android-tutorial-making-your-own-3d-list-part-3/
我使用了canvas和matrix,并为pretranslate、post translate、scale等方法设置了一些值。但我对它的工作原理没有任何想法,对于倾斜等特定值将产生什么影响也不清楚。当我与UI设计师讨论时,他们告诉我要使用“skew”或“perspective”属性来实现此屏幕设计。但我不知道如何在Android中对图像进行倾斜或应用透视。我尝试在自定义ListView的on drawChild()方法中应用一些倾斜值(使用了此链接 http://developer.sonymobile.com/2010/06/23/android-tutorial-making-your-own-3d-list-part-3/ 的ListView实现)。但视图变得不可见。
我无法使用矩阵的缩放行为,因为它会在每个子视图之间插入空白。
我还需要知道如何实现以下行为。我的需求如下:
一旦用户尝试滚动,它将检查阈值,仅在阈值高于配置的阈值时才滚动。
项目循环滚动,意味着在最后一个项目之后,轮子会显示第一个项目,以此类推。如果只有一个项目,则轮子应填充单个项目。
一旦视图被滚动,所有触摸操作都将被禁用,直到轮子停止。
轮子应该滚动指定的时间(从后端计算礼物并确定哪个项目应该位于视图中心)。
当我们使用 setSelected() 或 setSelection() 方法设置一个项目为已选择状态时(如 kankan 轮子演示中的 Android 轮子),轮子应逐渐减速到指定位置,而不是立即停止到该位置。