Java 安卓同时触摸和触摸释放
嗨,我最近开始尝试制作android应用程序 现在我已经做了一些简单的,但是,我仍然对触摸法感到困惑 我想做的是:当你的手指放在屏幕上时,Java 安卓同时触摸和触摸释放,java,android,touch,Java,Android,Touch,嗨,我最近开始尝试制作android应用程序 现在我已经做了一些简单的,但是,我仍然对触摸法感到困惑 我想做的是:当你的手指放在屏幕上时,x会增加,但当你松开手指时,它就会停止。问题是我找不到任何方法或任何方法来做这件事 这是我的密码: import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.graphics.Bitmap; import android.
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);
}
}
import java.util.Timer;
导入java.util.TimerTask;
导入android.content.Context;
导入android.graphics.Bitmap;
导入android.graphics.BitmapFactory;
导入android.graphics.Canvas;
导入android.graphics.Color;
导入android.view.MotionEvent;
导入android.view.SurfaceHolder;
导入android.view.SurfaceView;
公共类zombView扩展了SurfaceView{
私人位图,草,操纵杆;
私人土地持有人;
定时器t=新定时器();
浮动x=0,y=0;
布尔向前;
公共zombView(上下文){
超级(上下文);
holder=getHolder();
holder.addCallback(新的SurfaceHolder.Callback(){
@凌驾
公共空间表面覆盖(表面覆盖物持有人){
}
@凌驾
已处理的公共空隙表面(最终表面层持有人){
t、 scheduleAtFixedRate(新TimerTask(){
公开募捐{
Canvas c=holder.lockCanvas(空);
昂德劳(c);
支架。解锁帆布吊杆(c);
如果(正向==真){
x++;
}
}
},200,200);
}
@凌驾
公共无效表面更改(表面文件夹持有者,整数格式,
整数宽度,整数高度){
}
});
bmp=BitmapFactory.decodeResource(getResources(),R.drawable.ic_启动器);
grass=BitmapFactory.decodeResource(getResources(),R.drawable.grades);
操纵杆=位图工厂.decodeResource(getResources(),R.drawable.joystic);
}
@凌驾
受保护的void onDraw(画布){
画布。drawColor(颜色。黑色);
drawBitmap(grass,getWidth()-getWidth(),getHeight()-getHeight(),null);
drawBitmap(操纵杆,getWidth()-getWidth(),操纵杆,getHeight(),null);
drawBitmap(bmp,x,y,null);
}
@凌驾
公共布尔onTouchEvent(运动事件){
if(event.getX()>10&&event.getX()<1000){
if(event.getY()>10&&event.getY()<1000){
x++;
}
}
返回super.onTouchEvent(事件);
}
}
MotionEvent类有一个getAction
方法,该方法指定您的onTouchEvent
方法刚刚收到的事件类型。您将更经常地使用以下三种操作:
,它告诉您用户刚刚将手指放在屏幕上李>ACTION\u DOWN
,表示用户仍将手指放在屏幕上李>ACTION\u MOVE
,表示用户已将手指从屏幕上取下ACTION\u UP