android - 如何以及使用什么来制作这个组件

标签 android

我有一个非常具体的组件需要实现。我真的不知道该怎么做。 该组件是一个分段条,带有可以选择任何分段的光标。段选择应更新栏中的段数。一个段可以有两个“状态”,用 2 个不同的图形表示。

IE:enter image description here

这听起来像是一个评级栏,但我真的不知道如何继续(java 和 android 的新功能)。 我应该使用评级栏并按段更改星级吗? 我应该扩展RatingBar(如何?)?

任何帮助将不胜感激

最佳答案

看来您必须编写自己的 View 。别担心 - 这并没有那么困难(我在做了 Android 两天后毫不费力地完成了我的第一个)。基本上,您有一个扩展View的类,并且您覆盖了onDraw函数,该函数直接绘制到提供的Canvas。确保您也覆盖了 onMeasure 函数,否则您的 View 将没有高度!

看看 Building Custom Components 上的 android 页面- 快速googlestack overflow搜索也会给你很多关于如何继续的提示。

一旦你弄清楚如何编写自定义 View (从一个小原型(prototype)开始),那么你只需要这个特定 Controller 如何工作的逻辑。我可能有一个集合来保存您的每个段,每个项目都是代表您的数据的类。在您的 onDraw 中,您只需处理集合并绘制到屏幕上即可。

要让触摸进行缩放,请重写 onTouchEvent 方法,该方法将为您提供一个 MotionEvent 对象,您可以调用该对象 getX()和 getY() 来返回用户触摸 View 的坐标 - 从那里您可以计算出用户触摸的部分并处理缩放。

如果您需要更多帮助,请告诉我。

关于android - 如何以及使用什么来制作这个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941753/

相关文章:

android - React Native ScrollView 在 Android APK 上崩溃

android - Gmail 错误 "Unable to attach file"

android - 无法建立已发布的APK

android - AsyncTask cancel(Boolean) 调用 onPostExecute -?

android - 发送带有参数的 JSON 对象时出现 JSON 解析错误

android - EditText - 如何将在 EditText 中键入的字符分隔成组或 block

android - 来自同一号码的群组短信

android - 添加新库时出现错误 "Program type already present: android.support.design.widget.CoordinatorLayout$Behavior"

android - 如何在一个查询室中的多对多关系中获取连接表中的额外列android

android - 如何在按下后退按钮时恢复整个 fragment View ?