(Android)如何在没有位移的情况下在位图上绘制线条

时间:2015-04-21 16:57:38

标签: java android bitmap android-canvas android-drawable

我正在尝试创建一个应用程序,它允许用户通过触摸屏幕来绘制位图。 但我的代码有一个错误:所有的行都被取代了。例如,在附加的jpg上,我试图勾勒出一个绿色方块。但结果是,红色边框几乎位于绿色广场下方。

enter image description here

这是一个活动onCreate,其中包含一些变量:

@Override
protected void onCreate(Bundle savedInstanceState) {      
    imageView = (ImageView) findViewById(R.id.myImg);
    loadImage(); //this one places an images from the camera to the imageView
    c = new Canvas(mutableBitmap);
    imageView.draw(c);
}

当用户抬起他/她的手指时,我会获得用户输入坐标并绘制新线:

@Override
public boolean onTouchEvent(MotionEvent event){
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        xStart = event.getX();
        yStart = event.getY();
    }
    if (event.getAction() == MotionEvent.ACTION_UP) {
        xEnd = event.getX();
        yEnd = event.getY();
       drawMyLine(xStart, yStart, xEnd, yEnd);
    }
    return super.onTouchEvent(event);
}

Thant是一种绘制线条的方法:

private void drawMyLine(float x, float y, float xend, float yend) {
    Paint p = new Paint();
    p.setStrokeWidth(3.7f);
    p.setColor(Color.RED);
    c.drawLine(x, y, xend, yend, p);
    imageView.setImageBitmap(mutableBitmap);
}

0 个答案:

没有答案