按钮阴影效果第三方库
//在项目的build.gradle中添加:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
//在APP模块下的build.gradle中添加依赖:
dependencies {
implementation 'com.github.JuHonggang:ShadowDrawable:0.1'
}
//只需要这一行简单实现
ShadowDrawable.setShadowDrawable(控件, Color.parseColor("#3D5AFE"), 8,
Color.parseColor("#66000000"), 10, 0, 0);
水波纹第三方库
用法:这个控件的内部只可以包含一个子控件
点击水波纹
implementation 'com.balysv:material-ripple:1.0.2'
<?xml version="1.0" encoding="utf-8"?>
<com.balysv.materialripple.MaterialRippleLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:text="111"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.balysv.materialripple.MaterialRippleLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:text="222"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.balysv.materialripple.MaterialRippleLayout>
</LinearLayout>
</com.balysv.materialripple.MaterialRippleLayout>
app:mrl_rippleOverlay="true" 若为true,前景绘制波纹 false:背景
app:mrl_rippleColor="#ff0000" 涟漪波纹的颜色
app:mrl_rippleAlpha="0.1" 透明度
app:mrl_rippleDimension="10dp" 悬停半径和启动波纹
app:mrl_rippleHover="true" 如果为真,则在触摸视图时绘制悬停效果
app:mrl_rippleRoundedCorners="10dp" 涟漪角半径。注意:它使用API 17及以下的软件渲染管道
app:mrl_rippleInAdapter="true" true时,MaterialRippleLayout将优化adapterview的使用
app:mrl_rippleDuration="350" 波纹动画持续时间
app:mrl_rippleFadeDuration="75" 波纹的淡出效果持续时间
app:mrl_rippleDelayClick="true" 如果true,则延迟对onclicklistener的调用,直到涟漪效应结束
app:mrl_rippleBackground="#FFFFFF" 波纹可画背景;使用rippleOverlay = " false "
app:mrl_ripplePersistent="true" 如果为true,则波纹背景色在动画结束后持续存在,直到调用setRadius(0)
第三方水波纹
安卓5.0开始 xml 静态代码也可以实现
android:background="?android:attr/selectableItemBackground" <=这是一个默认的
在 drawable下 新建一个 selector 这时会提示创建drawable-v21进行系统适配
最后在xml中设置 android:background=" 引用 "
或者是在JAVA代码中 setBackgroundResource()
<?xml version="1.0" encoding="utf-8"?>
<!--第一种-->
<ripple
xmlns:tools="http://schemas.android.com/tools"
android:radius="10dp"
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#e7e7e7"
tools:targetApi="lollipop">
<item android:drawable="@color/white"/>
</ripple>
第一种效果
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/text_Grey">
<!--第二种-->
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="1dp" />
<solid android:color="@color/colorWhite" />
</shape>
</item>
</ripple>
网友评论