Android 实现水波纹动效
WaterRippleView核心文件
package com.manss.myapplication.widget.animation
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.util.AttributeSet
import android.view.View
import com.manss.myapplication.widget.DisplayUtil
import java.util.*
/**
* 水波纹动画view
*/
class WaterRippleView : View {
private var mMaxWaveAreaRadius = 0f
private var mWaveIntervalSize = 0f//波距 = 0f
private var mStirStep = 0f // 波移动的步幅 = 0f
private var mWidth = 0
private var mWaveStartWidth = 0f// px = 0f
private var mWaveEndWidth = 0f// px 最大半径,超过波消失 = 0f
private var mWaveColor = 0
private var mViewCenterX = 0f
private var mViewCenterY = 0f
private val rippleColor = Color.BLUE
//波动属性设置
private val mWavePaint = Paint()
//中心点属性设置
private val mWaveCenterShapePaint = Paint()
private var mFillAllView = false
private var mFillWaveSourceShapeRadius = 0f
private val mWaves: MutableList= ArrayList()
constructor(context: Context?, attrs: AttributeSet?) : super(
context,
attrs
) {
init()
}
constructor(context: Context?) : super(context) {
init()
}
private fun init