画手指的矩形?

时间:2017-07-10 20:47:22

标签: java android xml algorithm canvas

我试图用手指在屏幕最右侧的Android画布上绘制一个矩形:

enter image description here(看得很清楚,看到那个红点?我希望红点出现在我点击的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轴旁边 - 它总是出现在屏幕一侧的一个随机位置,与我点击的位置无关。

如果您发现我的代码中存在任何问题,请与我们联系。

0 个答案:

没有答案