波浪线
public class WaveView extends View {
private int screenWidth;
private float xoffset = 0;
private Path path;
private Paint paint;
public WaveView(context context) {
this(context,null);
}
public WaveView(Context context, AttributeSet attrs) {
this(context, attrs,-1);
}
public WaveView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
screenWidth = wm.getDefaultdisplay().getWidth();
paint = new Paint();
paint.setcolor(Color.RED);
paint.setAntiAlias(true);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
path = new Path();
ValueAnimator animator = ValueAnimator.ofFloat(0f,screenWidth);
animator.setDuration(1000);
animator.setRepeatCount(-1);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
xoffset = (float) animation.getAnimatedValue();
invalidate();
}
});
animator.start();
}
@Override
protected void onmeasure(int widthmeasurespec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
path.reset();
path.moveTo(0+xoffset, 500);
path.quadTo(screenWidth / 4+xoffset, 300, screenWidth / 2+xoffset, 500);
path.moveTo(screenWidth / 2+xoffset, 500);
path.quadTo(screenWidth / 4 * 3+xoffset, 700, screenWidth+xoffset, 500);
path.moveTo(0 + xoffset - screenWidth, 500);
path.quadTo(screenWidth / 4 + xoffset - screenWidth, 300, screenWidth / 2 + xoffset - screenWidth, 500);
path.moveTo(screenWidth / 2 + xoffset - screenWidth, 500);
path.quadTo(screenWidth / 4 * 3 + xoffset - screenWidth, 700, screenWidth + xoffset - screenWidth, 500);
canvas.drawPath(path, paint);
}
}
<com.bw.fengye.bolangxian.WaveView
Android:layout_width="match_parent"
android:layout_height="match_parent" />```
相关阅读
支付宝的用户在不断增多,其功能也在不断强大,它不仅可以用于淘宝购物,还能用于线下支付,还可以兑换红包哦。我们今天要和大家分享的就
Socket编程(C语言实现)——基于TCP协议,基于UDP协议(多线
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该
【机器学习+sklearn框架】(一) 线性模型之Linear Regres
前言 一、原理 1.算法含义 2.算法特点 二、实现 1.sklearn中的线性回归 2.用Python自己实现算法 三、思考(面试常问) 参
酷狗音乐想要关闭上线提醒,该怎么关闭呢?下面我们就来看看详细的教程。1、打开酷狗音乐2、点击右上方的“主菜单”按钮3
1. 直线检测1.1. Radon直线检测原理基于Radon变换的直线检测的目的就是检测根据角度变化时出现的“局部峰值”,即可以确定直线的方