前言
先上图
再上代码
package com.example.myapplication3;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
public class WaveLineTextView extends View {
int waveLineColor;
String allText;
int textColor;
int textSize;
private Paint mTextPaint;
private Paint mWaveLinePaint;
int waveLineWidth;
int waveWidth; //波長
int waveAmplitude; //振幅
int lineDistanceToText = 10; //文字和波浪线距离
int textdistanceToText = 10; //文字和波浪线距离
float textHeight; //文字高度
Map<Integer, String> textMap = new HashMap<>();
String[] TextsNeedToDrawWaveLine;
private int left;
private int right;
boolean isAllWithWaveLine;
public boolean isAllWithWaveLine() {
return isAllWithWaveLine;
}
public void setAllWithWaveLine(boolean allWithWaveLine) {
isAllWithWaveLine = allWithWaveLine;
}
public void setWaveLineColor(int waveLineColor) {
this.waveLineColor = waveLineColor;
mWaveLinePaint.setColor(waveLineColor);
invalidate();
}
public void setAllText(String allText) {
this.allText = allText;
invalidate();
}
public void setTextSize(int textSize) {
this.textSize = textSize;
mTextPaint.setTextSize(textSize);
invalidate();
}
public void setTextColor(int textColor) {
this.textColor = textColor;
mTextPaint.setColor(textColor);
invalidate();
}
public void setTextsNeedToDrawWaveLine(String[] textsNeedToDrawWaveLine) {
TextsNeedToDr