android倒车动态辅助线自定义view

package com.skypine.df.ui.backcar;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class ReverseCarTrackView extends View
{
    /**
     * 杞ㄨ抗绾块鑹�
     */
    private static final int colorTrack = 0xFFe88b4c;
    /**
     * 鍩哄噯绾块鑹�
     */
    private static final int midColor = 0xFF008b4c;
    private Install_ParameterTdef param = new Install_ParameterTdef();
    private static List<XYpoint> xylistLeft = new ArrayList<XYpoint>();
    private static List<XYpoint> xylistRight = new ArrayList<XYpoint>();

    private static double PI = ((double) 3.1415926535897);
    private static int Video_N = 0;
    private static int Video_P = 1;
    private static int Video_MAX = 2;

    private int Distance = 500;// 鍙幇瀹炵殑璺濈鍗曚綅cm
    private int Num = 51;
    private int mAngel = 25;
    private int mCalibration = 0;
    private boolean mCaliTrackShow = false;
    private static Paint revFlagColor = new Paint();
    private static Paint revTrackColor = new Paint();
    private static Paint revMidColor = new Paint();

    private int mFlagWidth = 40;// 鍗曚綅cm
    private double[] mFlagScale = { 1, 0.8, 0.64, 0.512, 0.4, 0.32 };// 鍗曚綅cm
    // 妯嚎涓暟
    private int pointCount = (Num - 1) / (Distance / 100);
    private int mtotalPoint = (Distance / 100) + 1;
    public static int mScreenYBias = 28;// 杞ㄨ抗鏄剧ず鍦ㄥ睆骞曚笂鐨刌杞村亸绉�

    public static final int LEVEL_DATA_LEFT = -10;// 瀵逛簬涓績杞寸殑鍋忕Щ璺濈锛屽崟浣峜m
    public static final int LEVEL_DATA_MIDDLE = 0;
    public static final int LEVEL_DATA_RIGHT = 10;

    public static final int ANGLE_MIN_VALUE = -40;
    public static final int ANGLE_MAX_VALUE = 40;

    public ReverseCarTrackView(Context context)
    {
        super(context);
        initData();
        initPaint();
    }

    public ReverseCarTrackView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        TypedArray typeArray = context.obtainStyledAttributes(attrs,
                R.styleable.ReverseTrack);
        mAngel = typeArray.getInt(R.styleable.ReverseTrack_wheelangle, mAngel);
        mCalibration = typeArray.getInt(
                R.styleable.ReverseTrack_wheelcalibration, mCalibration);
        mCaliTrackShow = typeArray.getBoolean(
                R.styleable.ReverseTrack_wheelshowtrack, mCaliTrackShow);
        typeArray.recycle();
        initData();
        initPaint();
    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        super.onDraw(canvas);
        canvas.save();
        boolean bHardware = canvas.isHardwareAccelerated();
        if (bHardware)
        {
            setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        }
        onDrawUIFinal(canvas);
        canvas.restore();
    }

    private void onDrawUIFinal(Canvas canvas)
    {
        GetXYListFinal(Distance, Num, mAngel, param, canvas);
    }

    /**
     * 鍒濆鍖栫敾绗旈鑹�
     */
    private void initPaint()
    {
        revFlagColor.setColor(colorTrack);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值