效果:
公司最近接了个傻屌项目,写个app控制广场舞音箱,我也是醉了。需要使用到刻度尺去换FM台,自己对自定义view研究又不是很多,只要会找会改实现自己想要的就行。然后自己网上参考了这位老哥的博客:Android 自定义View:实现一个 FM 刻度尺,在它上面修改了一下实现自己的需求:
代码:
package com.skyworth.car.rulerdemo;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class RulerView extends View {
public static final int MIN_POSITION = 20;//起始位置
public static final int MAX_POSITION = 1700;//结束位置
private OnMoveActionListener mMove = null;
private Paint mLinePaint;//刻度线画笔
private Paint mTextPaint;//指示数字画笔
private Paint mRulerPaint;//指示线画笔
private float position = 20;
private int max = 1080;//FM频道最大值108*10
private int min = 870;//FM频道最小值87*10
private int scale = 900;
public RulerView(Context context) {
super(context);
init();
}
public RulerView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public RulerView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mLinePaint = new Paint();
mLinePaint.setColor(getResources().getColor(R.color.grey));
//抗锯齿
mLinePaint.setAntiAlias(true);
mLinePaint.setStyle(Paint.Style.STROKE