Ste*_*bbi 38 transparency android button
我已将ImageButton设置为透明,因此该图标与背景幕控面板(如Android ActionBar)相匹配.这看起来很好,因为我想要它.
但是,当背景透明时,按下操作栏中的透明按钮时,您看不到蓝色突出显示.
我可以拥有一个透明的ImageButton,点击时还有高亮显示吗?
<ImageButton
android:id="@+id/nextItemButton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@null"
android:src="@drawable/ic_media_ff" />
Run Code Online (Sandbox Code Playgroud)
小智 128
我遇到了同样的问题.最后,我得到了一个具有该属性的代码示例:
android:background="?android:selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)
这个属性将为任何视图(Button,ImageButton,TextView ...)提供透明背景和可选择的高亮显示,而无需更多编码!
Tom*_*mik 37
您需要做的就是设置正确的背景.如果你希望它在正常状态下是透明的,在按压状态下是蓝色的.
在目录中创建一个类似这样的StateListDrawableres/drawable.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/my_bluish_color" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
这样,默认背景是透明的.按下后,背景具有您指定的颜色(而不是颜色,您可以使用任何可绘制的颜色).
只是加上费尔南德斯的好答案:
如果您希望效果为圆形而不是矩形使用:
android:background="?android:selectableItemBackgroundBorderless"
Run Code Online (Sandbox Code Playgroud)
(*适用于V21及以上).
| 归档时间: |
|
| 查看次数: |
32551 次 |
| 最近记录: |