自定义view之简单实现字母索引列表
效果
思路
大体可分为两部分,一个是中间显示的英文字符,一个是右侧的字母索引列表,通过自定义view方法,计算每个字母的高度,然后依次绘制,通过触碰,绘制中心显示的文字,最后通过handler延时操作使其消失
代码
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Handler;
import android.os.Looper;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.Nullable;
public class LetterSideBar extends View {
private Paint paint = new Paint();
private Paint tempPaint = new Paint();
private boolean isTouch = false;
// 定义26个字母
public static String[] mLetters = {
"A", "B", "C", "D", "E", "F", "G", "H", "I",
"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z", "#"};
private String mCurrentTouchLetter;
private int currentPos;
int textWidth = (