在android java中移动画布中的位图

在android java中移动画布中的位图,java,android,canvas,bitmap,move,Java,Android,Canvas,Bitmap,Move,我的问题是如何在画布上移动位图 最近我在做一个游戏,有一个按钮 单击此按钮时,我想移动位图(仅X) 但是当我这样做的时候,位图就消失了 代码如下: “main_right”是我正在单击的按钮。 我也试着把“invalidate()”放在那里,但也没用 @Override public boolean onTouchEvent(MotionEvent event) { final float x = event.getX(); final float y =

我的问题是如何在画布上移动位图

最近我在做一个游戏,有一个按钮

单击此按钮时,我想移动位图(仅X) 但是当我这样做的时候,位图就消失了

代码如下:

“main_right”是我正在单击的按钮。 我也试着把“invalidate()”放在那里,但也没用

@Override
    public boolean onTouchEvent(MotionEvent event) {
        final float x = event.getX();
        final float y = event.getY();
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:

            if (x > width - main_right.getWidth()
                    && x < width - main_right.getWidth()
                            + main_right.getWidth()
                    && y > height
                            - (main_right.getHeight() + main_right.getHeight() / 2)
                    && y < height
                            - (main_right.getHeight() + main_right.getHeight() / 2)
                            + main_right.getHeight()) {

                x += 1;

                canvas_main.drawBitmap(image, (width / 2) + x2,
                        height - (image.getHeight() + image.getHeight() / 2),
                        paint);

            } else {
                x = 0;
            }
            return true;
        }
        return false;
    }
@覆盖
公共布尔onTouchEvent(运动事件){
最终浮点x=event.getX();
最终浮点y=event.getY();
开关(event.getAction()){
case MotionEvent.ACTION\u DOWN:
如果(x>width-main_right.getWidth()
&&x高度
-(main_right.getHeight()+main_right.getHeight()/2)
&&y<高度
-(main_right.getHeight()+main_right.getHeight()/2)
+main_right.getHeight()){
x+=1;
canvas_main.drawBitmap(图像,(宽度/2)+x2,
高度-(image.getHeight()+image.getHeight()/2),
油漆);
}否则{
x=0;
}
返回true;
}
返回false;
}

将x位置存储在onTouchEvent上,并在onDraw(画布)内的画布上绘制,这是您需要绘制的曲面

canvas_main.drawBitmap(image, (width / 2) + x,
                        height - (image.getHeight() + image.getHeight() / 2),
                        paint);
如果位图为>(设备高度/3),则高度可能有问题

本质上是指高度-1.5*图像高度。由于位图的左上角位于该坐标处,因此图像将从屏幕中消失

应该是

height - (image.getHeight() - image.getHeight() / 2)


谢谢回复,我改了,但还是不起作用。
height - (image.getHeight() - image.getHeight() / 2)
height - image.getHeight() / 2