我有一个图标我想缩小到48dp并用作按钮(没有背景)。但是,添加android:background
属性(使背景透明)似乎打破了我应用于按钮的大小,它以完整大小显示:
所需尺寸但背景难看:
<ImageButton
android:id="@+id/composition_send"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:scaleType="fitCenter"
android:src="@drawable/ic_send_black_48dp"/>
完整(错误)大小,但没有背景(需要):
<ImageButton
...
android:background="?android:selectableItemBackground"/>
为什么添加一行会破坏大小调整?
答案 0 :(得分:0)
如果您未设置Imagebutton
的背景属性,Imagebutton
将使用Android的默认Imagebutton
背景。此背景包含填充,因此您的图像更小
因此,当您通过不包含填充的颜色或资源设置Imagebutton
的背景时,您的图像看起来会更大
您可以在
中找到Imagebutton
和另一个View
的默认背景
.. \的Android \ SDK \平台\机器人-23 \数据\ RES \绘制\
(这里的某些资源不公开)
例如
如果使用API 23编译项目,则ImageButton
的默认背景为btn_default_material
<ImageButton
...
android:background="@android:drawable/btn_default_material"
android:src="@drawable/ic_send_black_48dp"/>
<ImageButton
...
android:src="@drawable/ic_send_black_48dp"/>
因此,您设置android:background="@android:drawable/btn_default_material"
或不使用背景属性,2 ImageButton
看起来相同(注意:btn_default_material
不公开使用)
希望这个帮助
答案 1 :(得分:0)
尝试添加
android:src="@drawable/ic_send_black_48dp
android:backgroundTint="#0000"
到ImageButton,它会使背景透明,然后你可以在上面设置图像。
答案 2 :(得分:0)
如果您不想在图像按钮中使用丑陋的背景,那么您可以使用imageview作为按钮并在其上设置onClickListener。它的行为就像一个按钮。 这个Link会对您有所帮助。