2011-11-24 108 views
0

美好的一天!Like Android for Android

我试图在实现语音为Android(如iPhone),而是一个特定的应用程序(而不是整个操作系统)

想象一下,六个按键的屏幕,所以他们占据了整个活动,分布式大小相同。

当我用手指在屏幕上“走动”时,我想将焦点放在按钮上,并在按钮具有焦点并让焦点进行拍摄时捕捉事件。

结论:当我在屏幕上轻弹时,如果它在一个按钮上,焦点按钮。如果我继续拖动手指,请将焦点放在另一个按钮上,而不要将手指从屏幕上移开。

任何人都可以帮助我吗?对不起,英文不好。

回答

0

那么你必须知道按钮的位置。您可以使用基本视图功能来获取职位(getLeft()等等)。

之后,您必须对Activity的事件触发onTouchListner。您必须检查Event.x和Event.y指针的位置,并将指定的视图设置为foucs。指针从指定视图移动后,您将焦点设置为false。

+0

请告诉我更多详细信息... – Mateus

+0

为rootView设置ontouch列表程序,并在其中使用event.getRawY()和event.getRawX()。这会让你知道触摸发生在哪里。你必须编写自己的函数来检查事件是否发生在基于getLeft(),getTop()和其他函数的按钮中。之后,您可以使用按钮的setPressed(true)函数。此外,在触摸列表中,您必须确定事件是ACTION_DOWN还是ACTION_UP。首先你将使用setpressed(true)来查看第二个将使用setpressed(false)的对象。寻找一些触摸事件教程 –

1

我不认为你可以为此使用Android Button类,而是做一个自定义视图,绘制六个矩形,然后编写一个onTouchEvent方法,根据用户的手指位置确定播放什么声音。有关您可以使用的一些代码,请参阅http://pragprog.com/book/eband3/hello-android的Sudokuv4示例。