相关疑难解决方法(0)

使用不同的单击状态创建不规则形状的ImageButton

我创建了一个带按钮和非按下状态选择器的ImageButton,这很好用.

但是按钮的形状不规则,我只希望它可以在底层矩形图像不透明的地方点击.

所以我实现了一个OnTouchListener,它根据Bitmap的像素值检查触摸事件的坐标(如第一个答案中所述:链接).就判断是否按下按钮的逻辑而言,这是有效的,但现在按钮的图像不再变为按下的图像.

这是我有的:

选择器xml文件:

<?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_start_call_pressed" />
    <item android:drawable="@drawable/button_start_call_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)

布局中部分透明的ImageButton:

<ImageButton
    android:id="@+id/dashboardStartCallButton"
    android:background="@null"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/start_call_button_selector"
     />
Run Code Online (Sandbox Code Playgroud)

在活动中:

public void onCreate(Bundle savedInstance) {
   super.onCreate(savedInstance);
   ...
   ImageButton startCallButton = (ImageButton) this.findViewById(R.id.dashboardStartCallButton);
   startCallButton.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return OnStartCallButtonTouch(v,event);
        }           
    });
}


public boolean OnStartCallButtonTouch(View v, MotionEvent event)
{
    Bitmap TheBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.button_start_call_normal);
    int eventPadTouch = event.getAction();
    int iX = (int) event.getX();
    int …
Run Code Online (Sandbox Code Playgroud)

android transparent touch imagebutton clickable

8
推荐指数
1
解决办法
2939
查看次数

Android:创建形状按钮

如何创建这样的自定义按钮?

在此输入图像描述

它应该只是可点击区域而不是真正的按钮.

android button touch

6
推荐指数
2
解决办法
5736
查看次数

标签 统计

android ×2

touch ×2

button ×1

clickable ×1

imagebutton ×1

transparent ×1