gpt4 book ai didi

java - Android同时触摸和触摸释放

转载 作者:太空狗 更新时间:2023-10-29 15:33:55 26 4
gpt4 key购买 nike

嗨,我最近开始尝试制作安卓应用目前已经做了一些简单的,但是,我仍然对触摸方法感到困惑。

我想做的是:当您的手指按住屏幕时,x 递增,但当您松开手指时它停止。问题是我找不到任何方法或任何方式来做到这一点。

这是我的代码:

import java.util.Timer;
import java.util.TimerTask;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class zombView extends SurfaceView{
private Bitmap bmp, grass, joystick;
private SurfaceHolder holder;
Timer t = new Timer();
float x = 0, y = 0;
boolean forward;
public zombView(Context context) {
super(context);
holder = getHolder();
holder.addCallback(new SurfaceHolder.Callback() {

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}

@Override
public void surfaceCreated(final SurfaceHolder holder) {


t.scheduleAtFixedRate(new TimerTask(){
public void run(){
Canvas c = holder.lockCanvas(null);
onDraw(c);
holder.unlockCanvasAndPost(c);
if(forward == true){
x++;
}
}
},200,200);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
}
});
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
grass = BitmapFactory.decodeResource(getResources(), R.drawable.grassland);
joystick = BitmapFactory.decodeResource(getResources(), R.drawable.joystic);
}

@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(grass, getWidth() - getWidth(), getHeight() - getHeight(), null);
canvas.drawBitmap(joystick, getWidth() - getWidth(),joystick.getHeight(), null);
canvas.drawBitmap(bmp, x, y, null);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getX() > 10 && event.getX() < 1000){
if(event.getY() > 10 && event.getY() < 1000){
x++;
}
}
return super.onTouchEvent(event);
}
}

最佳答案

MotionEvent 类有一个getAction 方法,它指定您的onTouchEvent 方法刚刚接收到什么样的事件。您将更频繁地使用三种操作:

  • ACTION_DOWN,告诉您用户刚刚将手指放在屏幕上;
  • ACTION_MOVE,表示用户的手指仍在屏幕上;
  • ACTION_UP,表示用户的手指已离开屏幕。

根据监听器刚刚获取的事件类型,您可以更改代码的行为。有关更多信息,请查看 documentation .希望这会有所帮助。

关于java - Android同时触摸和触摸释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9018022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com