增加ImageView的可点击区域
Increasing clickable area of ImageView
我创建了一个 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 >
您可能会考虑将其包装在具有您想要的确切额外宽度和高度的 LinearLayout
中,并将图像保持在 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>
我刚刚为 LinearLayout
添加了任意宽度值,因为你需要左右 70dp,所以总数是 140。
如果我没记错的话,这就是你的解决方案。
你先放一个父布局,然后把ImageView
放在里面。
然后 onclicklistener
在父级上。
<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>
我创建了一个 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 >
您可能会考虑将其包装在具有您想要的确切额外宽度和高度的 LinearLayout
中,并将图像保持在 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>
我刚刚为 LinearLayout
添加了任意宽度值,因为你需要左右 70dp,所以总数是 140。
如果我没记错的话,这就是你的解决方案。
你先放一个父布局,然后把ImageView
放在里面。
然后 onclicklistener
在父级上。
<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>