android - 如何在不缩放背景的情况下增加 Android 按钮的点击区域?

标签 android

我有一个带有自定义可绘制对象的按钮。

<Button
    android:layout_width="22dip"
    android:layout_height="23dip"
    android:background="@drawable/triangle" />

drawable 是一个具有透明背景的三角形。

|\
| \
|__\

我发现这个按钮很难点击。首先,它相对较小。其次,透明像素不可点击。我想保持可绘制的大小相同,但将点击区域设为三角形大小的两倍。

_____________
|            |
|    |\      |
|    | \     |
|    |__\    |
|____________|

最佳答案

您可以使用 TouchDelegate API。

final View parent = (View) button.getParent();  // button: the view you want to enlarge hit area
parent.post( new Runnable() {
    public void run() { 
        final Rect rect = new Rect(); 
        button.getHitRect(rect); 
        rect.top -= 100;    // increase top hit area
        rect.left -= 100;   // increase left hit area
        rect.bottom += 100; // increase bottom hit area           
        rect.right += 100;  // increase right hit area
        parent.setTouchDelegate( new TouchDelegate( rect , button)); 
    } 
}); 

关于android - 如何在不缩放背景的情况下增加 Android 按钮的点击区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176105/

相关文章:

android - API-21 上的 Fragment 事务替换处于落后状态

java - 在 Android 上使用 JavaMail 验证电子邮件

android - 从 AsyncTask 调用 UI 线程方法

android - Mono Android - OverridePendingTransition 在设备上不工作,在模拟器中工作正常

安卓蓝牙读取btrs232适配器

android - 在 Android 上使用 Azure Speech to Text 拦截音频 blob 或将音频保存到文件

android - 如何在 react 原生中解决(无法初始化类 org.codehaus.groovy.reflection.ReflectionCache)问题

android - 基于触摸事件创建菜单(Android/Opengl1.0)

android - 图像/文本在背景中居中的按钮

android - ImageView 选择器不起作用