我试图用手指在屏幕最右侧的Android画布上绘制一个矩形:
(看得很清楚,看到那个红点?我希望红点出现在我点击的X轴的屏幕一侧)
我将屏幕划分为100x100网格:
gridSizePx_w = width/100;
gridSizePx_h = height/100;
我在这里画出红色方块:
public void drawInitialBullet(float x) {
SurfaceHolder holder = getHolder();
if(holder.getSurface().isValid()) {
Canvas screenCanvas = holder.lockCanvas();
Paint paint = new Paint();
paint.setColor(Color.RED);
screenCanvas.drawRect(width-gridSizePx_w, ((int) x)-gridSizePx_w, width, ((int) x) + gridSizePx_h, paint );
holder.unlockCanvasAndPost(screenCanvas);
}
}
在这里获得触摸事件后:
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_UP){
drawInitialBullet(motionEvent.getX());
Toast.makeText(myContext, "YEAH", Toast.LENGTH_LONG);
}
return true;
}
然而,出于某种原因,正方形从不出现在正确的X轴旁边 - 它总是出现在屏幕一侧的一个随机位置,与我点击的位置无关。
如果您发现我的代码中存在任何问题,请与我们联系。