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

时间:2011-08-04 12:53:08

标签: android

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

IE:enter image description here

这可能听起来像评级栏,但我真的不知道如何继续(新的java和Android)。 我应该使用评级栏,只是按段更改星标? 我应该延长RatingBar(如何?)?

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

看起来你将不得不写自己的观点。不要担心 - 它并不那么困难(我在做Android 2天后没有任何汗水做了我的第一个)。基本上你有一个扩展View的类,你重写onDraw函数,它直接绘制到提供的Canvas。确保您也覆盖了onMeasure功能,否则您的视图将没有高度!

查看Building Custom Components上的Android页面 - 快速googlestack overflow搜索会为您提供有关如何继续操作的许多提示。

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

要触摸缩放,请覆盖onTouchEvent方法,该方法会为您提供MotionEvent对象,您可以调用getX()getY()来返回坐标用户触摸您的视图的位置 - 从那里您可以计算出用户触摸的片段并处理缩放。

如果您需要更多帮助,请与我们联系。

答案 1 :(得分:1)

这看起来很难实现。

创建自定义视图,覆盖onDraw()并从那里开始;每个部分可能都是一个矩形,因为你知道有多少个部分,你可以将其除以部分的数量,并将它们绘制在正确的位置上。

覆盖ontouch并检查运动事件的点击位置,执行命中测试以确定单击哪个线段,然后将布尔缩放设置为true,使视图无效以便重绘并仅绘制缩放的线段。 / p>

您可能希望通过一个包含每个部分的状态的简单数组来支持它。