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