我有一张图片......里面有两个按钮。我不想使用默认按钮控件,而是想对图像按钮执行操作。
有没有办法在图像按钮上执行单击..
答案 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)
以获取其坐标点击使用GestureDetector
和OnSingleTapConfirmed(MotionEvent event)
方法确定点击的坐标。
此外,您应该覆盖侦听器的event.getX()
方法以返回event.getY()
。
也许不是最优雅的解决方案,但它会完成这项工作。