package com.yifei.myapplication;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;
import java.util.Random;
public class MusicView extends View {
private Paint paint; //定义一个画笔
private int width;
private int rectWidth;//矩形的宽
private int rectHeight;//矩形的高
private int offset =10;//两个矩形之间的距离
private LinearGradient linearGradient; //渲染渐变
//音频条的数目
private int rectCount;
public MusicView(Context context, AttributeSet attrs) {
super(context, attrs);
initView();
}
private void initView() {
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);//设置画笔的样式为填充或者边框
rectCount = 12;//矩形单的数目为14
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
width = getWidth();//获取屏幕的宽度
rectHeight = getHeight();//获取屏幕的高度
rectWidth = (int) (width * 0.8 / rectCount);//每个音频条的宽度
linearGradient = new LinearGradient(0, 0,getWidth(), getHeight(), Color.YELLOW, Color.GREEN, Shader.TileMode.CLAMP);
paint.setShader(linearGradient);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (int i = 0; i < rectCount; i++) {
int height = new Random().nextInt(getHeight() -90)+20;
canvas.drawRect((int) (getWidth() * 0.1 + i * rectWidth+offset), (getHeight() - height), (int) (getWidth() * 0.1 + (i + 1) * rectWidth), getHeight(), paint);
}
postInvalidateDelayed(500); //隔300毫秒刷新一次
}
}