Android屏幕上点击

时间:2011-12-04 05:55:56

标签: android

我有一张图片......里面有两个按钮。我不想使用默认按钮控件,而是想对图像按钮执行操作。

有没有办法在图像按钮上执行单击..

4 个答案:

答案 0 :(得分:0)

您应该使用Button Widget。如果您不喜欢默认外观,可以使用属性指定按钮的自定义图像:

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@drawable/button" />

如果您需要不同的图像进行按下/悬停,您可以像这样制作自定义Drawable:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/button_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/button_focused" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@drawable/button_focused" /> <!-- hovered -->
    <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

答案 1 :(得分:0)

您可以使用ImageButton

ImageButton yourButton; // Declare as class member

onCreate code:

yourButton = (ImageButton)findViewById(R.id.yourbutton);


yourButton.setOnClickListener(new View.OnClickListener() {

  @Override
  public void onClick(View v) 
    // your code 
  }
});

xml代码是:

<ImageButton 
   android:background="@drawable/img_btn_bg"
   android:src="@drawable/img_to_show"></ImageButton>

答案 2 :(得分:0)

我认为你必须拆分图像然后你可以在两个图像中的每个图像上使用hasxz的代码。我不确定,但我不认为你可以给出一个图像区域,它会对点击做出反应。

答案 3 :(得分:0)

查看GestureDetector课程。您应该覆盖onTouchEvent(MotionEvent event)的{​​{1}}来调用ImageView的{​​{1}}并在附加的侦听器中实现您自己的onTouchEvent(event)以获取其坐标点击使用GestureDetectorOnSingleTapConfirmed(MotionEvent event)方法确定点击的坐标。

此外,您应该覆盖侦听器的event.getX()方法以返回event.getY()

也许不是最优雅的解决方案,但它会完成这项工作。