Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android.view.InflateException:二进制XML文件:膨胀类时出错_Java_Android_Xml_Android Layout - Fatal编程技术网

Java android.view.InflateException:二进制XML文件:膨胀类时出错

Java android.view.InflateException:二进制XML文件:膨胀类时出错,java,android,xml,android-layout,Java,Android,Xml,Android Layout,我得到的错误如下 android.view.InflateException:二进制XML文件行#16:膨胀类DrawView时出错 。我正在DrawView类中创建自定义视图。调用setContentView(R.layout.newimage_活动)时,在Oncreate方法中它将显示上面的错误 XML布局为: DrawView类别代码为: public class DrawView extends View { private Bitmap mBitmap; p

我得到的错误如下

android.view.InflateException:二进制XML文件行#16:膨胀类DrawView时出错

。我正在
DrawView
类中创建自定义视图。调用
setContentView(R.layout.newimage_活动)时,在
Oncreate
方法中它将显示上面的错误

XML布局为:


DrawView类别代码为:

public class DrawView extends View {

    private Bitmap  mBitmap;
    private Canvas  mCanvas;
    private Path    mPath;
    private Paint   mBitmapPaint;
    private Paint   mPaint;

    private RectF   rectF ;
    private Region  Region1;
    private Region  Region2;
    private List<Point> mPoints;
    private List<Line> mLines;
    private boolean bModify_line;
    private float mX, mY;
    private float mOriginal_X, mOriginal_Y;

    private Line mLine ;
    private static final float TOUCH_TOLERANCE = 50;


    public DrawView(Context c) 
    {
        super(c);
        rectF = new RectF();
        mPath = new Path();
        mPath.computeBounds(rectF, true);
        mPaint =  new Paint();
        mPaint.setColor(Color.WHITE);
        mPaint.setAntiAlias(true);
        mPaint.setXfermode(null);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeWidth(5);
        mBitmapPaint = new Paint(Paint.DITHER_FLAG);
        mPoints = new ArrayList<Point>();
        mLines  = new ArrayList<Line>();
        bModify_line =  false;

    }

    int width,height;
    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        width = w ; height =h;

    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        mCanvas = new Canvas(mBitmap);
        canvas.drawColor(0xFFAAAAAA);//original color 0xFFAAAAAA
        canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
        for(int i = 0 ; i < mLines.size();i++)
        {
            Line line = mLines.get(i);
            mCanvas.drawLine(line.getStartPoint().x, line.getStartPoint().y, line.getEndPoint().x, line.getEndPoint().y, mPaint);
        }

    }


    private void touch_move(float x, float y) 
    {
        float dx = Math.abs(x - mX);
        float dy = Math.abs(y - mY);
        if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) 
        {
            mX = x;
            mY = y;
        }
    }

    private void touch_start(float x, float y) 
    {
        int  iLineNumber = checkPointinLines(x, y);

        if(iLineNumber >= 0 )
        {
            bModify_line  = true;
            mPath.moveTo(x, y);
            mX = x;
            mY = y;
        }
        else
        {
            mLine =  new Line();
            mLine.setStartPoint(new Point((int)x, (int)y));
            mPath.moveTo(x, y);
            mX = x;
            mY = y;
        }
        mOriginal_X =  mX;
        mOriginal_Y =  mY;
    }

    private void touch_up() 
    {

        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    if(iPoint == 0)
                    {
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point((int)mX, (int)mY));

                    }
                    else if(iPoint == 1)
                    {
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point((int)mX, (int)mY));
                    }

                    mLines.set(iLineNumber, line);
                    System.out.println("After setline size of lineArray::"+mLines.size());

                    bModify_line = false;
                }
            }
        }
        else
        {
            mPath.lineTo(mX, mY);
            mLine.setEndPoint(new Point((int)mX, (int)mY));
            mLines.add(mLine);
            mPath.reset();
        }

    }





    @Override
    public boolean onTouchEvent(MotionEvent event) 
    {
        float x = event.getX();
        float y = event.getY();

        switch (event.getAction()) 
        {
        case MotionEvent.ACTION_DOWN:
            touch_start(x, y);
            invalidate();
            break;
        case MotionEvent.ACTION_MOVE:
            touch_move(x, y);
            invalidate();
            break;
        case MotionEvent.ACTION_UP:
            touch_up();
            invalidate();
            break;
        }
        return true;
    }


    /**
     * Checks if user touch point with some tolerance
     */
    private int checkPointOnLine(float x, float y,Line line) 
    {
        int iPoint = -1; 

        Point point = line.getStartPoint();

        if(x > (point.x - TOUCH_TOLERANCE) && x < (point.x + TOUCH_TOLERANCE) && y > (point.y - TOUCH_TOLERANCE) && y < (point.y + TOUCH_TOLERANCE) )
            iPoint = 0;

        point = line.getEndPoint();

        if (x > (point.x - TOUCH_TOLERANCE) && x < (point.x + TOUCH_TOLERANCE) && (y > (point.y - TOUCH_TOLERANCE) && y < (point.y + TOUCH_TOLERANCE) ))

            iPoint = 1 ;


        return iPoint;
    }


    private int checkPointinLines(float x, float y) 
    {
        int iLine = -1; 
        for(int i=0 ;i < mLines.size();i++)
        {
            Line line = mLines.get(i);

            if(x > (line.getStartPoint().x - TOUCH_TOLERANCE) 
                    && x < (line.getStartPoint().x + TOUCH_TOLERANCE) 
                    && y > (line.getStartPoint().y - TOUCH_TOLERANCE) 
                    && y < (line.getStartPoint().y + TOUCH_TOLERANCE) 
                    ||
                    x > (line.getEndPoint().x - TOUCH_TOLERANCE) 
                    && x < (line.getEndPoint().x + TOUCH_TOLERANCE) 
                    && y > (line.getEndPoint().y - TOUCH_TOLERANCE) 
                    && y < (line.getEndPoint().y + TOUCH_TOLERANCE))
                iLine = i;

        }
        return iLine;
    }

    public void movePoint(int position)
    {
        switch(position)
        {
        case 0:
            //up
            movePointUp();
            break;
        case 1:
            //Right
            movePointRight();
            break;
        case 2:
            //Down
            movePointDown();
            break;
        case 3:
            //Left
            movePointLeft();
            break;

        }
    }

    private void movePointUp()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x ;
                        modifyPointY = line.getStartPoint().y - 2;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x;
                        modifyPointY = line.getEndPoint().y -2;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }

    }

    private void movePointRight()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x + 2;
                        modifyPointY = line.getStartPoint().y ;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x + 2;
                        modifyPointY = line.getEndPoint().y ;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }
    }

    private void movePointLeft()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x - 2 ;
                        modifyPointY = line.getStartPoint().y ;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x - 2;
                        modifyPointY = line.getEndPoint().y ;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }
    }

    private void movePointDown()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x ;
                        modifyPointY = line.getStartPoint().y + 2;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x;
                        modifyPointY = line.getEndPoint().y + 2;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }

    }
}
公共类DrawView扩展视图{
私有位图mBitmap;
私人帆布mCanvas;
专用路径mPath;
私人油漆;
私人油漆;
私有RectF-RectF;
私人区域1;
私人区域2;
私有列表mpoint;
私人名单;
私有布尔b修改_线;
私人浮动mX,我的;
私人浮动mOriginal_X,mOriginal_Y;
专线;
专用静态最终浮动接触公差=50;
公共绘图视图(上下文c)
{
超级(c);
rectF=新的rectF();
mPath=新路径();
mPath.computeBounds(rectF,true);
mPaint=新油漆();
mPaint.setColor(Color.WHITE);
mPaint.setAntiAlias(true);
mPaint.setXfermode(null);
mPaint.setStyle(油漆、样式、笔划);
mPaint.设定行程宽度(5);
mBitmapPaint=新油漆(油漆抖动标志);
mPoints=newarraylist();
mLines=新的ArrayList();
bModify_line=false;
}
int宽度、高度;
@凌驾
已更改尺寸的受保护空心(整数w、整数h、整数oldw、整数oldh){
super.onSizeChanged(w,h,oldw,oldh);
宽度=w;高度=h;
}
@凌驾
受保护的void onDraw(画布)
{
mBitmap=Bitmap.createBitmap(宽度、高度、Bitmap.Config.ARGB_8888);
mCanvas=新画布(mBitmap);
canvas.drawColor(0xffaaaaaaa);//原始颜色0xffaaaaaaa
drawBitmap(mBitmap,0,0,mbitMapPoint);
对于(int i=0;i=接触公差| | dy>=接触公差)
{
mX=x;
mY=y;
}
}
专用无效触摸启动(浮动x、浮动y)
{
int-ilineumber=checkPointinLines(x,y);
如果(iLineNumber>=0)
{
b修改_行=真;
移动到(x,y)的速度;
mX=x;
mY=y;
}
其他的
{
mLine=新行();
多线设置起点(新点((int)x,(int)y));
移动到(x,y)的速度;
mX=x;
mY=y;
}
mOriginal_X=mX;
mOriginal_Y=我的;
}
私人空间修补()
{
如果(b修改行)
{
int-ilineumber=检查点内线(mOriginal_X,mOriginal_Y);
如果(iLineNumber>-1)
{
Line=mLines.get(ILineumber);
int-iPoint=checkPointOnLine(mX、mY、line);
如果(i点>=0)
{
如果(iPoint==0)
{
moveTo(line.getEndPoint().x,line.getEndPoint().y);
行。设置起点(新点((int)mX,(int)mY));
}
else if(iPoint==1)
{
移动到(line.getStartPoint().x,line.getStartPoint().y);
setEndPoint(新点((int)mX,(int)mY));
}
mLines.set(iLinember,line);
System.out.println(“在线性阵列的设置行大小之后::”+mLines.size());
bModify_line=false;
}
}
}
其他的
{
mPath.lineTo(mX,mY);
setEndPoint(新点((int)mX,(int)mY));
添加(多行);
mPath.reset();
}
}
@凌驾
公共布尔onTouchEvent(运动事件)
{
float x=event.getX();
float y=event.getY();
开关(event.getAction())
{
case MotionEvent.ACTION\u DOWN:
触摸启动(x,y);
使无效();
打破
case MotionEvent.ACTION\u移动:
触摸移动(x,y);
使无效();
打破
case MotionEvent.ACTION\u UP:
润色;
使无效();
打破
}
返回true;
}
/**
*检查用户接触点是否具有一定的公差
*/
私有整数检查点在线(浮点x、浮点y、线)
{
int-iPoint=-1;
Point=line.getStartPoint();
如果(x>(点x-接触公差)和&x<(点x+接触公差)和&y>(点y-接触公差)和&y<(点y+接触公差))
i点=0;
point=line.getEndPoint();
如果(x>(点x-接触公差)和&x<(点x+接触公差)和&y>(点y-接触公差)和&y<(点y+接触公差)))
i点=1;
返回i点;
}
私有int检查点内联线(浮点x,浮点y)
{
内线=-1;
对于(int i=0;i(line.getStartPoint().x-触摸公差)
&&x<(line.getStartPoint().x+触摸公差)
&&y>(line.getStartPoint().y-接触公差)
&&y<(line.getStartPoint().y+接触公差)
||
x>(line.getEndPoint()
public class DrawView extends View {

    private Bitmap  mBitmap;
    private Canvas  mCanvas;
    private Path    mPath;
    private Paint   mBitmapPaint;
    private Paint   mPaint;

    private RectF   rectF ;
    private Region  Region1;
    private Region  Region2;
    private List<Point> mPoints;
    private List<Line> mLines;
    private boolean bModify_line;
    private float mX, mY;
    private float mOriginal_X, mOriginal_Y;

    private Line mLine ;
    private static final float TOUCH_TOLERANCE = 50;


    public DrawView(Context c) 
    {
        super(c);
        rectF = new RectF();
        mPath = new Path();
        mPath.computeBounds(rectF, true);
        mPaint =  new Paint();
        mPaint.setColor(Color.WHITE);
        mPaint.setAntiAlias(true);
        mPaint.setXfermode(null);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeWidth(5);
        mBitmapPaint = new Paint(Paint.DITHER_FLAG);
        mPoints = new ArrayList<Point>();
        mLines  = new ArrayList<Line>();
        bModify_line =  false;

    }

    int width,height;
    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        width = w ; height =h;

    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        mCanvas = new Canvas(mBitmap);
        canvas.drawColor(0xFFAAAAAA);//original color 0xFFAAAAAA
        canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
        for(int i = 0 ; i < mLines.size();i++)
        {
            Line line = mLines.get(i);
            mCanvas.drawLine(line.getStartPoint().x, line.getStartPoint().y, line.getEndPoint().x, line.getEndPoint().y, mPaint);
        }

    }


    private void touch_move(float x, float y) 
    {
        float dx = Math.abs(x - mX);
        float dy = Math.abs(y - mY);
        if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) 
        {
            mX = x;
            mY = y;
        }
    }

    private void touch_start(float x, float y) 
    {
        int  iLineNumber = checkPointinLines(x, y);

        if(iLineNumber >= 0 )
        {
            bModify_line  = true;
            mPath.moveTo(x, y);
            mX = x;
            mY = y;
        }
        else
        {
            mLine =  new Line();
            mLine.setStartPoint(new Point((int)x, (int)y));
            mPath.moveTo(x, y);
            mX = x;
            mY = y;
        }
        mOriginal_X =  mX;
        mOriginal_Y =  mY;
    }

    private void touch_up() 
    {

        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    if(iPoint == 0)
                    {
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point((int)mX, (int)mY));

                    }
                    else if(iPoint == 1)
                    {
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point((int)mX, (int)mY));
                    }

                    mLines.set(iLineNumber, line);
                    System.out.println("After setline size of lineArray::"+mLines.size());

                    bModify_line = false;
                }
            }
        }
        else
        {
            mPath.lineTo(mX, mY);
            mLine.setEndPoint(new Point((int)mX, (int)mY));
            mLines.add(mLine);
            mPath.reset();
        }

    }





    @Override
    public boolean onTouchEvent(MotionEvent event) 
    {
        float x = event.getX();
        float y = event.getY();

        switch (event.getAction()) 
        {
        case MotionEvent.ACTION_DOWN:
            touch_start(x, y);
            invalidate();
            break;
        case MotionEvent.ACTION_MOVE:
            touch_move(x, y);
            invalidate();
            break;
        case MotionEvent.ACTION_UP:
            touch_up();
            invalidate();
            break;
        }
        return true;
    }


    /**
     * Checks if user touch point with some tolerance
     */
    private int checkPointOnLine(float x, float y,Line line) 
    {
        int iPoint = -1; 

        Point point = line.getStartPoint();

        if(x > (point.x - TOUCH_TOLERANCE) && x < (point.x + TOUCH_TOLERANCE) && y > (point.y - TOUCH_TOLERANCE) && y < (point.y + TOUCH_TOLERANCE) )
            iPoint = 0;

        point = line.getEndPoint();

        if (x > (point.x - TOUCH_TOLERANCE) && x < (point.x + TOUCH_TOLERANCE) && (y > (point.y - TOUCH_TOLERANCE) && y < (point.y + TOUCH_TOLERANCE) ))

            iPoint = 1 ;


        return iPoint;
    }


    private int checkPointinLines(float x, float y) 
    {
        int iLine = -1; 
        for(int i=0 ;i < mLines.size();i++)
        {
            Line line = mLines.get(i);

            if(x > (line.getStartPoint().x - TOUCH_TOLERANCE) 
                    && x < (line.getStartPoint().x + TOUCH_TOLERANCE) 
                    && y > (line.getStartPoint().y - TOUCH_TOLERANCE) 
                    && y < (line.getStartPoint().y + TOUCH_TOLERANCE) 
                    ||
                    x > (line.getEndPoint().x - TOUCH_TOLERANCE) 
                    && x < (line.getEndPoint().x + TOUCH_TOLERANCE) 
                    && y > (line.getEndPoint().y - TOUCH_TOLERANCE) 
                    && y < (line.getEndPoint().y + TOUCH_TOLERANCE))
                iLine = i;

        }
        return iLine;
    }

    public void movePoint(int position)
    {
        switch(position)
        {
        case 0:
            //up
            movePointUp();
            break;
        case 1:
            //Right
            movePointRight();
            break;
        case 2:
            //Down
            movePointDown();
            break;
        case 3:
            //Left
            movePointLeft();
            break;

        }
    }

    private void movePointUp()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x ;
                        modifyPointY = line.getStartPoint().y - 2;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x;
                        modifyPointY = line.getEndPoint().y -2;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }

    }

    private void movePointRight()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x + 2;
                        modifyPointY = line.getStartPoint().y ;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x + 2;
                        modifyPointY = line.getEndPoint().y ;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }
    }

    private void movePointLeft()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x - 2 ;
                        modifyPointY = line.getStartPoint().y ;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x - 2;
                        modifyPointY = line.getEndPoint().y ;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }
    }

    private void movePointDown()
    {
        if(bModify_line)
        {
            int  iLineNumber = checkPointinLines(mOriginal_X, mOriginal_Y);
            if(iLineNumber > -1)
            {
                Line line = mLines.get(iLineNumber);
                int iPoint = checkPointOnLine(mX,mY,line);
                if(iPoint >= 0)
                {
                    int modifyPointX,modifyPointY;
                    if(iPoint == 0)
                    {
                        modifyPointX = line.getStartPoint().x ;
                        modifyPointY = line.getStartPoint().y + 2;
                        mPath.moveTo(line.getEndPoint().x, line.getEndPoint().y);
                        line.setStartPoint(new Point(modifyPointX, modifyPointY));
                    }
                    else if(iPoint == 1)
                    {
                        modifyPointX = line.getEndPoint().x;
                        modifyPointY = line.getEndPoint().y + 2;
                        mPath.moveTo(line.getStartPoint().x, line.getStartPoint().y);
                        line.setEndPoint(new Point(modifyPointX, modifyPointY));
                    }

                    mLines.set(iLineNumber, line);
                    bModify_line = false;
                }
            }
        }
        else
        {
            Toast.makeText(getContext(), "Please select point", Toast.LENGTH_SHORT).show();
        }

    }
}
public DrawView(Context c, AttributeSet attrs) {
     super(c, attrs);
}