我有一个非常具体的组件需要实现。我真的不知道该怎么做。 该组件是一个分段条,带有可以选择任何分段的光标。段选择应更新栏中的段数。一个段可以有两个“状态”,用 2 个不同的图形表示。
IE:
这听起来像是一个评级栏,但我真的不知道如何继续(java 和 android 的新功能)。 我应该使用评级栏并按段更改星级吗? 我应该扩展RatingBar(如何?)?
任何帮助将不胜感激
最佳答案
看来您必须编写自己的 View 。别担心 - 这并没有那么困难(我在做了 Android 两天后毫不费力地完成了我的第一个)。基本上,您有一个扩展View
的类,并且您覆盖了onDraw
函数,该函数直接绘制到提供的Canvas
。确保您也覆盖了 onMeasure
函数,否则您的 View 将没有高度!
看看 Building Custom Components 上的 android 页面- 快速google或stack overflow搜索也会给你很多关于如何继续的提示。
一旦你弄清楚如何编写自定义 View (从一个小原型(prototype)开始),那么你只需要这个特定 Controller 如何工作的逻辑。我可能有一个集合来保存您的每个段,每个项目都是代表您的数据的类。在您的 onDraw
中,您只需处理集合并绘制到屏幕上即可。
要让触摸进行缩放,请重写 onTouchEvent
方法,该方法将为您提供一个 MotionEvent
对象,您可以调用该对象 getX()
和 getY() 来返回用户触摸 View 的坐标 - 从那里您可以计算出用户触摸的部分并处理缩放。
如果您需要更多帮助,请告诉我。
关于android - 如何以及使用什么来制作这个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941753/