Android 自定义轮盘或老虎机实现

2023-12-19

我需要实现如图所示的类似轮子的控件(老虎机)。

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

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

我使用了画布和矩阵,并使用了预翻译、翻译后缩放等方法的一些值。但我不知道它是如何工作的,它对偏斜的特定值会产生什么影响等。 当我与 UI 设计师讨论时,他们告诉我,要实现此屏幕设计,请使用“倾斜”或“透视”属性。但我不知道如何在 android 中倾斜或应用透视图像。我尝试在自定义列表视图的 ondrawChild() 方法中应用一些值来倾斜(使用此链接的列表视图实现http://developer.sonymobile.com/2010/06/23/android-tutorial-making-your-own-3d-list-part-3/ http://developer.sonymobile.com/2010/06/23/android-tutorial-making-your-own-3d-list-part-3/)。但景色却变得看不见了。

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

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

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

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

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

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

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


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 自定义轮盘或老虎机实现 的相关文章

随机推荐

  • 从 Angular NGXS 中的不同组件搜索数据

    我试图弄清楚如何从不同的组件中搜索 NGXS 当我从应用程序组件 这是一个不同的组件 显示我的数据时 我有来自导航栏组件的搜索栏 请参阅此 stackblitz 链接点击这里 https stackblitz com edit ngxs s
  • .NET Core 2 - 带有实例名称和端口号的连接字符串

    在我的应用程序中 我的配置中有一个连接字符串 该应用程序使用 NET core 2 11 和 SQL Server 创建 这是连接字符串 Data Source servername instancename portnumber Init
  • 制作一个seaborn线图,为每个点指定标准差/置信区间

    我正在尝试制作一个具有平滑的置信区间的线图 看起来像这样的东西 source pydata org https seaborn pydata org images seaborn lineplot 1 png 目前 我所做的是使用误差线来显
  • aspnet5 vNext (rc1) iis 8 - 错误网关 502.3

    我意识到存在这样的帖子 我已经阅读 重新阅读但仍然遇到问题 大多数都是旧的或不直接相关的 所以我想我应该重新发布当前的示例 尝试在 Windows Server 2012 R2 上的 IIS 8 5 中运行基本站点 此时我陷入了 502 3
  • 垂直分屏自定义形状

    I want to make a vertical split screen with a custom shape like in my attached image But it must be cross browser suppor
  • JavaScriptSerializer 将对象“集合”反序列化为对象失败的属性

    我有一个 js 对象 结构如下 object property1 some string object property2 some string object property3 property1 some string object
  • 复制整个目录但排除一些文件 php

    试图找到一种复制整个目录但排除某些文件的方法 在这种情况下只需要排除一个始终只包含 1 个 png 文件的目录 我想可以使用类似于此代码的内容 但绝对没有任何线索如何仅排除一个文件 function xcopy source dest pe
  • 堆地址范围内全局变量的地址

    我正在调试MPlayer 1 3 0源代码 我看到一个全局变量 其地址 由GDB甚至简单的打印 都在堆分配的范围内 而不是数据部分 我使用检查了堆范围procfs 555555554000 555555834000 r xp 0000000
  • Firefox VIEW SOURCE 显示登录页面

    我在 Arch Linux 上运行 Firefox 61 0 查看页面源代码时 当我浏览需要登录的网站时 我经常 但并非总是如此 估计有 20 的时间 会看到登录页面的源代码 当我浏览本地主机 每个页面的源代码都是在服务器上生成的 这不是操
  • 你能在 Python 中的核心类型上猴子修补方法吗?

    Ruby 可以向 Number 类和其他核心类型添加方法以获得如下效果 1 should equal 1 但Python似乎无法做到这一点 这是真的 如果是这样 为什么 这是否与以下事实有关 type不能修改吗 我不想讨论猴子修补的不同定义
  • 如何在 obj-c 中打印格式化的浮点数?

    如何打印float在 Objective C 中 例如 3 45代替3 45555555555 尝试像这样格式化浮动 NSLog 2f myFloat The 符号表示这将被下面的相应参数替换 myFloat The 2表示小数点后 2 位
  • 是否可以在 Artifactory 中重命名存储库?

    我们想引入一种命名约定 因为我们有大量的内部和外部存储库 因此我们希望让人们清楚什么是什么 添加这些存储库时 没有人预计事情会增长这么多 我想知道是否可以重命名存储库 我知道我可以创建新的并复制 移动其中的工件 但这看起来比我想要的要付出更
  • Automake:构建不被安装的共享模块

    如何告诉Automake构建一个不被安装的动态模块 pkglib LTLIBRARIES mywrapper la mywrapper la LDFLAGS no undefined module avoid version 导致 mywr
  • 如何在 C# 中保存随机生成器的状态? [复制]

    这个问题在这里已经有答案了 出于测试目的 我使用给定的种子创建随机数 即不基于当前时间 因此整个程序是确定性的 如果发生什么事情 我希望能够快速恢复到事件发生 不久之前 的点 因此我需要能够恢复System Random到之前的状态 有没有
  • Babel 对 Object.entries 的支持

    我正在看Object values Object entries 的第 3 阶段提案 https github com tc39 proposal object values entries我真的很想在我当前的 JavaScript 项目中
  • 过桥拼图

    晚上必须有四个人过桥 任何人过桥 无论是一个人还是两个人 都必须随身携带手电筒 必须用手电筒来回走动 每个人行走的速度不同 一个需要 1 分钟 另一个需要 2 分钟 另一个需要 5 分钟 最后 10 分钟 如果两个人一起穿过 他们必须以较慢
  • 将列表中连续出现的相同重复项目分组

    例如 我们有一个这样的列表 L item1 item2 item3 item3 item3 item1 item2 item4 item4 item4 我想将它们打包到以下形式的元组列表中 item1 1 item2 1 item3 3 i
  • 如何过期或重置地理位置

    当用户访问我的网站时 我会检查是否在 PHP 中设置了位置会话 如果没有设置与用户位置的会话 我将它们重定向到 www domain net location 在此页面上有许多选项供用户选择位置 如果浏览器允许 选项之一是使用浏览器进行设置
  • 为什么 `instance_of_object.foo is instance_of_object.foo` 的计算结果为 False? [复制]

    这个问题在这里已经有答案了 如果我有一个 class A def foo self pass 这评估为True getattr A foo is A foo 但这评估为False a A getattr a foo is a foo as
  • Android 自定义轮盘或老虎机实现

    我需要实现如图所示的类似轮子的控件 老虎机 但每个项目的边缘 项目之间的位置 需要平滑 以便它看起来像地球一样的球体 这是从 iPhone 库中获得的 iPhone 应用程序的屏幕截图 我想要安卓版的 我检查了 kankan 轮 Andro