在android java中移动画布中的位图
我的问题是如何在画布上移动位图 最近我在做一个游戏,有一个按钮 单击此按钮时,我想移动位图(仅X) 但是当我这样做的时候,位图就消失了 代码如下: “main_right”是我正在单击的按钮。 我也试着把“invalidate()”放在那里,但也没用在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 =
@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