本文实例为大家分享了Android自定义view完成车载可调整轨迹线的具体代码,供大家参考,具体内容如下
同事做的view,拿过来做个记录。
/**
*
*/
package com.text.myviewdemo.view;
import org.apache.http.conn.routing.RouteInfo.LayerType;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.DashPathEffect;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Xfermode;
import android.graphics.PorterDuff.Mode;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
/**
* @author chenhanrong
*
*/
public class CCView extends View implements android.view.View.OnClickListener{
private Paint paint;
private float[] line_r,line_l,line_1,line_2,line_3,line_t;
// private float line1YL,line1YR,line2YL,line2YR,line3YL,line3YR;
public Context context;
private float radiu;
private boolean showPoint = false;
private boolean cmP1=false;
private boolean cmP2=false;
private boolean cmP3=false;
private boolean cmP4=false;
private boolean cmP5=false;
private boolean cmP6=false;
private boolean cmP7=false;
private boolean cmP8=false;
private boolean cmP9=false;
private boolean cmP10=false;
private boolean isfirst = true;
private boolean isMove = false;
public final static int D_LEFT =0;
public final static int D_RIGHT =1;
public final static int TYPE_MIN =0;
public final static int TYPE_MAX =1;
public CCView(Context context) {
this(context,null);
}
public CCView(Context context, AttributeSet attrs) {
this(context,attrs,0);
}
public CCView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.context = context;
init();
}
/**
* 初始化控件
*/
private void init() {
paint = new Paint();
/**
* 去锯齿
*/
paint.setAntiAlias(true);
/**
* 设置paint的颜色
*/
paint.setColor(Color.RED);
/**
* 设置paint的 style
*/
paint.setStyle(Paint.Style.FILL);
/**
* 设置paint的外框宽度
*/
paint.setStrokeWidth(10);
setOnClickListener(this);
setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
setLayerType(LAYER_TYPE_HARDWARE, paint);
radiu = 20f;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(0x00000000, PorterDuff.Mode.CLEAR);
// paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OVER));
if(isfirst){
line_l =