部分代码
public class MapView extends View {
private PointF cenPointF;
private Paint mCirPaint, pathPaint, mRtextPaint, mLtextPaint;
private Context mContext;
private int firstCount;
private int firstRadius;
private int circleRadius = 0;
private Path mPath;
private int besselCardinality;
private PointUtil pointUtil;
protected VelocityTracker mVelocityTracker;
protected ArrayList<RectFModel> rectfList = new ArrayList<RectFModel>();
private float scaleX, scaleY;// 缩放时 x,y坐标
// 数据相关变量(假数据)
private List<PointFModel> firstList;
private List<PointFModel> secondList;
public MapView(Context context) {
super(context);
mContext = context;
initData();
initViews();
initAtions();
}
public MapView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
mContext = context;
initData();
initViews();
initAtions();
}
public MapView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContext = context;
initData();
initViews();
initAtions();
}
private void initData() {
pointUtil = new PointUtil(mContext);
firstCount = 6;
firstRadius = MapOpinion.getSpacing(mContext);
circleRadius = MapOpinion.getCircleRadius(mContext);
besselCardinality = +Util.dip2px(mContext, 30);
mPath = new Path();
mTran = new float[]{0, 0};
cenPointF = new PointF();
mCirPaint = new Paint();
mCirPaint.setColor(Color.parseColor("#FF7200"));
mCirPaint.setStrokeWidth(2);
mCirPaint.setStyle(Paint.Style.FILL);
pathPaint = new Paint();
pathPaint.setColor(Color.parseColor("#9b9b9b"));
pathPaint.setStrokeWidth(2);
pathPaint.setStyle(Paint.Style.STROKE);
pathPaint.setAntiAlias(true);
mRtextPaint = new Paint();
mRtextPaint.setColor(Color.parseColor("#000000"));
mRtextPaint.setTextSize(MapOpinion.getTextSize(mContext));
mRtextPaint.setStyle(Paint.Style.STROKE);
mLtextPaint = new Paint();
mLtextPaint.setColor(Color.parseColor("#000000"));
mLtextPaint.setTextSize(MapOpinion.getTextSize(mContext));
mLtextPaint.setTextAlign(Paint.Align.RIGHT);
mLtextPaint.setStyle(Paint.Style.STROKE);
mVelocityTracker = VelocityTracker.obtain();
firstList = new ArrayList<>();
secondList = new ArrayList<>();
}
private void initViews() {
}
private void initAtions() {
}