本文实例为大家分享了Android自定义View实现波浪动画的具体代码,供大家参考,具体内容如下
效果演示
代码调用与实现效果
xml中调用
android:layout_width="match_parent"
android:layout_height="match_parent"
app:amplitude="100"
app:quadrant="0.5"
app:speed="0.15"/>
实现原理
属性配置
attrs.xml文件中,进行属性配置
获取属性,同时对属性赋默认值
final TypedArray array = context.obtainStyledAttributes(set, R.styleable.Wave);
mSpeed = array.getFloat(R.styleable.Wave_speed, DEFAULT_SPEED);
mWaveColor = array.getColor(R.styleable.Wave_waveColor, DEFAULT_WAVE_COLOR);
mWaveBKColor = array.getColor(R.styleable.Wave_waveBackgroundColor, DEFAULT_WAVE_BK_COLOR);
mAmplitude = array.getInt(R.styleable.Wave_amplitude, DEFAULT_AMPLITUDE);
mQuadrant = array.getFloat(R.styleable.Wave_quadrant, DEFAULT_QUADRANT);
mFrequency = array.getFloat(R.styleable.Wave_frequency, DEFAULT_FREQUENCY);
array.recycle();
绘制波浪
在onDraw()中使用Canvas进行绘制即可,这里需要注意的正弦曲线的绘制.
正弦曲线(y=Asin(ωx+φ)+k)的一些参数如下:
A――振幅,当物体作轨