0

我的应用程序有一个整洁的背景,背景中已经包含“按钮”。

我想以某种方式用边界框或矩形包围这些“按钮”,然后让该区域响应触摸事件。

我怎么能在android中做到这一点?

谢谢!

4

4 回答 4

0

只需用任何布局包围它,并为该布局设置 setOnClickListener。

举个例子

 <LinearLayout 
   android:background="#abc123"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:paddingBottom="10dp"
   android:paddingTop="10dp"
   android:id="@+id/lay1">

 <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />
 </LinearLayout>

现在为按钮和线性布局放置单独的侦听器。这将与所有屏幕一致,即填充将在任何地方固定。

于 2012-10-16T23:40:44.957 回答
0

试用并使用

Region rgn = new Region();

在此,设置一个边界,该边界应该在按钮中。

并检查一个条件,如果您的点击在该区域的 x 和 y 范围内,请执行某些操作...

参考

http://www.java2s.com/Code/Android/2D-Graphics/Regions.htm

于 2012-10-17T04:34:08.517 回答
0

添加一个视图(这将是透明的,并将位于所有视图组件的顶部)到您的布局。并为您的视图设置一个OnTouchListener。然后在预期的 X、Y 坐标内监听触摸事件。

于 2012-10-17T03:17:08.517 回答
0
  1. 在 XML 中添加按钮
  2. 附加点击监听器
  3. 运行应用程序

有关更多信息和帮助,请单击此处

编辑:运行代码

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.but_1_but:
        // do stuff for 1st button
        break;
    case R.id.but_2_but:
        // do stuff for 2nd button
        break;
    }
}
于 2012-10-16T23:59:57.137 回答