Android 增加ImageView的可点击区域

Android 增加ImageView的可点击区域,android,android-imageview,android-relativelayout,Android,Android Imageview,Android Relativelayout,我已经创建了一个RelativeLayout,作为工具栏的一部分,如下所示。布局由两个图像和图像下方的细线组成。对于这两张图片,我增加了宽度,因为点击区域更宽。底部显示了屏幕截图(Android Studio)的外观 现在的问题是我无法控制图像的大小(图像只是放在中间)。如何将图像的实际大小固定为25 x 25 dp,并将图像左右两侧的可单击区域扩展70 dp,将图像底部和顶部的可单击区域扩展10 dp <RelativeLayout xmlns:android="http://sche

我已经创建了一个
RelativeLayout
,作为工具栏的一部分,如下所示。布局由两个图像和图像下方的细线组成。对于这两张图片,我增加了宽度,因为点击区域更宽。底部显示了屏幕截图(Android Studio)的外观

现在的问题是我无法控制图像的大小(图像只是放在中间)。如何将图像的实际大小固定为25 x 25 dp,并将图像左右两侧的可单击区域扩展70 dp,将图像底部和顶部的可单击区域扩展10 dp

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:orientation="horizontal">

    <View
        android:id="@+id/keyboard_toolbar_line"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/privacyButton"
        android:layout_marginBottom="5dp"
        android:background="#c0c0c0"/>

    <ImageView
        android:id="@+id/privacyButton"
        android:layout_width="100dp"
        android:layout_alignParentStart="true"
        android:layout_height="35dp"
        android:scaleType="center"
        android:layout_marginStart="30dp"
        android:src="@drawable/research_ic_lock_open_dark" />

    <ImageView
        android:id="@+id/ratingButton"
        android:layout_width="100dp"
        android:layout_alignParentEnd="true"
        android:layout_height="35dp"
        android:scaleType="center"
        android:layout_marginEnd="30dp"
        android:src="@drawable/ic_star" />

</RelativeLayout >


您可以考虑将其包装成一个
线性布局
,该布局具有您想要的确切额外宽度和高度,并将图像保持在25x25dp;然后将单击侦听器添加到
LinearLayout
而不是
ImageView

一幅图像的示例:

<LinearLayout
    android:layout_width="140dp"
    android:gravity="center"
    android:layout_height="35dp">

    <ImageView
        android:id="@+id/privacyButton"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:layout_alignParentStart="true"
        android:layout_marginStart="30dp"
        android:scaleType="center"
        android:src="@drawable/quarter_circle" />

</LinearLayout>


我刚刚为
线性布局
添加了任意值,用于宽度,因为左右需要70dp,所以总数是140。

如果我没有弄错的话,这是您的解决方案

首先放置父布局,然后将
ImageView
放入其中。 然后在父对象上单击Listener

 <RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/keyboard_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:orientation="horizontal">

        <View
            android:id="@+id/keyboard_toolbar_line"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_below="@id/privacyButton"
            android:layout_marginBottom="5dp"
            android:background="#c0c0c0"/>

        <RelativeLayout
            android:layout_width="100dp"
            android:layout_height="35dp">
            <ImageView
                android:id="@+id/privacyButton"
                android:layout_width="35dp"
                android:layout_alignParentStart="true"
                android:layout_height="35dp"
                android:scaleType="center"
                android:layout_marginStart="30dp"
                android:src="@drawable/research_ic_lock_open_dark" />
        </RelativeLayout>
    <RelativeLayout
        android:layout_width="100dp"
        android:layout_height="35dp">

        <ImageView
            android:id="@+id/ratingButton"
            android:layout_width="35dp"
            android:layout_alignParentEnd="true"
            android:layout_height="35dp"
            android:scaleType="center"
            android:layout_marginEnd="30dp"
            android:src="@drawable/ic_star" />
    </RelativeLayout>

    </RelativeLayout>