我在LinearLayout中显示了一个小图像,右侧和右侧有一些边距。 我的问题是保证金不可点击。 如何在视图的左右两侧显示空格,使用这个额外的空间来扩展我的可点击区域?
<ImageButton
android:id="@+id/markReadButton"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:adjustViewBounds="true"
android:background="@android:drawable/checkbox_on_background"
android:gravity="center_vertical"
android:onClick="onMarkRead" >
</ImageButton>
答案 0 :(得分:1)
这是使用TouchDelegate在Google IO 2011 Schenduling应用中完成的。看看像这样使用它的Activity;
// Larger target triggers star toggle
final View starParent = mRootView.findViewById(R.id.header_session);
FractionalTouchDelegate.setupDelegate(starParent, mStarred, new RectF(0.6f, 0f, 1f, 0.8f));
The TouchDelegate implementation is implemented here。它是开源的,应该很容易导入到您的项目中。
祝你好运,希望这会有所帮助!答案 1 :(得分:0)
我认为使用填充代替边距可以让你的项目有更多的空间,但也可以让它可以点击。
查看边距与填充的描述:Difference between a View's Padding and Margin
修改强> 尝试使用android:src作为图像,设置android:background =“@ null”并增加ImageButton对象的整体大小。那时,我甚至不确定你是否需要填充。您可以根据需要使用ImageButton中居的src图像修改高度和宽度。
<ImageButton
android:id="@+id/markReadButton"
android:layout_width="60dp"
android:layout_height="40dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:src="@android:drawable/checkbox_on_background"
android:background="@null"
android:adjustViewBounds="true"
android:onClick="onMarkRead"
/>
答案 2 :(得分:0)
只需添加布局父级并设置例如20dp更大的宽度和高度
<RelativeLayout android:id="@+id/relativeLayoutButton"
android:layout_width="60dp"
android:layout_height="60dp"
android:paddingRight="20dp"
android:paddingLeft="20dp" >
<ImageButton
android:id="@+id/markReadButton"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:adjustViewBounds="true"
android:background="@android:drawable/checkbox_on_background"
android:gravity="center_vertical"
android:onClick="onMarkRead" >
</ImageButton>
然后设置相同的布局和图像的位置。 设置也可点击相同的布局和按钮