android studio 使用手指在屏幕上移动,飞机跟随手指移动
时间: 2023-10-22 14:24:02 浏览: 251
实现手指在屏幕上移动,飞机跟随手指移动的效果,可以通过以下步骤实现:
1. 在布局文件中添加一个 ImageView 控件,用于显示飞机的图片。
2. 在 Java 代码中获取 ImageView 控件的实例,并为其设置触摸监听器。
3. 在触摸监听器中实现飞机跟随手指移动的逻辑:
- 当手指按下时,记录下当前手指所在的坐标位置。
- 当手指移动时,计算出手指移动的距离,并根据距离调整飞机的位置。
- 当手指抬起时,取消触摸监听器。
下面是一个示例代码,可以参考实现:
首先,在布局文件中添加 ImageView 控件:
```
<ImageView
android:id="@+id/ivPlane"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/plane" />
```
然后,在 Java 代码中获取 ImageView 控件的实例,并为其设置触摸监听器:
```
ImageView ivPlane = findViewById(R.id.ivPlane);
ivPlane.setOnTouchListener(new View.OnTouchListener() {
float startX, startY;
float offsetX, offsetY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
float endX = event.getX();
float endY = event.getY();
offsetX = endX - startX;
offsetY = endY - startY;
ivPlane.setX(ivPlane.getX() + offsetX);
ivPlane.setY(ivPlane.getY() + offsetY);
startX = endX;
startY = endY;
break;
case MotionEvent.ACTION_UP:
v.setOnTouchListener(null);
break;
}
return true;
}
});
```
在触摸监听器中,我们记录下手指按下时的坐标位置(startX、startY),并在手指移动时计算出手指移动的距离(offsetX、offsetY),然后根据距离调整飞机的位置(ivPlane.setX()、ivPlane.setY())。最后,在手指抬起时取消触摸监听器,避免继续响应触摸事件。
阅读全文