2011-05-31 70 views
0

所以我很喜欢使用Android SDK的noob(与直接Java相比,我觉得它很混乱)。这是我第二天使用它,整个教自己。需要帮助使矩形功能像按钮(安卓)

有了这个提到,我想知道如何使一个矩形作为一个按钮。

基本上用户将点击某个矩形(画在屏幕上,但如何绘制它是一个不同的问题;我是完全与画布丢失),然后我想检查x /他们碰触的地方,看看是否包含在矩形内,此时应用程序将执行某些操作(例如,在用户界面上的某个文本视图中更改文本)。

我一直在努力做到这一点大约一个小时没有运气,如果任何人都可以写一小段关于如何做到这一点的源代码,我会很感激!

+0

也看看ImageView ... – JAL 2011-06-01 00:07:59

回答

2

所以我打算假设你正在使用SurfaceView来绘制。你想要的应该很简单。

首先,覆盖面视图中的触摸事件,并存储了最后触摸的坐标:

@Override 
public void onTouchEvent(MotionEvent event) { 
x = event.getX(); 
y = event.getY(); 
} 

然后,检查您的RECT包含坐标:

Rect rect = new Rect() // Your rect 

if (rect.contains(x, y) { 
    // Contained in your rect 
} else { 
    // Not contained in your rect 
} 

我相信这就是你问的问题?如果您仍然感到困惑,请告诉我。

+0

说实话,我还没有听说过surfaceview,所以我不知道如何使用它来绘制矩形。您是否可以制作一个非常小的程序,用矩形表面视图绘制矩形,然后使用此触摸事件来改变颜色?如果没有太多要问。您发布的代码与我正在尝试的代码非常相似(使用.contains),除非我试图使用一个使我感到困惑的OnTouchListener。 – Matt 2011-05-31 23:54:32

+0

哦,好吧,这是假设你正在创建自己的SurfaceView。但是你也应该可以创建自己的onTouchListener,并将其绑定到一个视图,并以相同的方式监听触摸事件。但是,是的。要进行绘图,您可能想要查看SurfaceView类并覆盖它的onDraw。这就是你拥有画布的地方,可以做像canvas.drawRect(....); – Brayden 2011-06-01 00:00:17

+0

对于初学者来说,SurfaceView会令人困惑。看看LunarLander API演示。 – Snailer 2011-06-01 00:52:39