and*_*per 107 android button rippledrawable
在Android的拨号器应用程序上,当您开始搜索某些内容,然后单击EditText左侧的箭头按钮时,会对其产生圆形连锁效果:
我也尝试过它,但我有一个矩形的:
<ImageButton
android:id="@+id/navButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dp"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/search_ic_back_arrow"/>
Run Code Online (Sandbox Code Playgroud)
单击时如何使按钮具有圆形波纹效果?我是否必须创建一个新的drawable,或者是否有内置的方式?
bon*_*ond 248
如果您使用的是AppCompat主题,则可以将视图的背景设置为:
android:background="?selectableItemBackgroundBorderless"
Run Code Online (Sandbox Code Playgroud)
这将在21及以上添加圆形纹波,在21以下添加方形背景.
Anr*_*ian 61
具有圆形波纹效果的另一个属性,特别适用于动作栏:
android:background="?actionBarItemBackground"
Run Code Online (Sandbox Code Playgroud)
Tho*_* R. 45
创建并设置一个可绘制的波纹作为背景.像这样的东西.
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/grey_15">
<item android:id="@android:id/mask">
<shape android:shape="oval">
<solid android:color="?android:colorPrimary"/>
</shape>
<color android:color="@color/white"/>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
Vol*_*kiv 15
您可以使用android:radiusxml中的属性创建圆形波纹绘制.
例:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="your_color"
android:radius="your_radius" />
Run Code Online (Sandbox Code Playgroud)
请注意,您your_radius应该小于您的视图宽度和高度.例如:如果您有大小的视图60dp x 60dp your_radius应该接近30dp(宽度/ 2或高度/ 2).
适用于Android 5.0及更高版本.
liv*_*ove 15
如果您已经有一个背景图像,这里有一个看起来接近selectableItemBackgroundBorderless的波纹示例:
<ImageButton
android:id="@+id/btn_show_filter_dialog"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="@drawable/ic_filter_state"/>
Run Code Online (Sandbox Code Playgroud)
ic_filter_state.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/state_pressed_ripple"/>
<item
android:state_enabled="true"
android:drawable="@drawable/ic_filter" />
</selector>
Run Code Online (Sandbox Code Playgroud)
state_pressed_ripple.xml :(白色背景上的不透明度设置为10%)1AFFFFFF
<?xml version="1.0" encoding="UTF-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="#1AFFFFFF"/>
</shape>
<color android:color="#FFF"/>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
2021 年更新:
你需要使用actionBarItemBackground作为背景
android:background="?android:attr/actionBarItemBackground"
Run Code Online (Sandbox Code Playgroud)
例子:
<androidx.appcompat.widget.AppCompatImageButton
android:layout_width="56dp"
android:layout_height="56dp"
android:background="?android:attr/actionBarItemBackground"
android:src="@drawable/ic_copy" />
Run Code Online (Sandbox Code Playgroud)
只需在您的活动 xml 中添加此项
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/actionBarItemBackground"
app:srcCompat="@drawable/ic_arrow_drop_down_black_24dp" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56802 次 |
| 最近记录: |