安卓跟随手指移动图片
时间: 2023-08-23 12:04:49 浏览: 150
要实现跟随手指移动图片的效果,可以在代码中监听手指的移动事件,然后根据手指的位置动态改变图片的位置。
具体实现步骤如下:
1. 在 XML 布局文件中添加一个 ImageView 控件,用来显示图片。
2. 在 Activity 中找到这个 ImageView 控件,并为它设置一个触摸事件监听器,用来监听手指的移动事件。
3. 在监听器的回调函数中,获取手指的位置,并根据手指的位置动态改变 ImageView 控件的位置。
下面是一段示例代码,可以实现图片跟随手指移动的效果:
```
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private int lastX, lastY;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到 ImageView 控件
imageView = findViewById(R.id.imageView);
// 为 ImageView 控件设置触摸事件监听器
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 记录手指按下时的位置
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
// 计算手指移动的距离
int dx = (int) event.getRawX() - lastX;
int dy = (int) event.getRawY() - lastY;
// 更新 ImageView 控件的位置
imageView.layout(
imageView.getLeft() + dx,
imageView.getTop() + dy,
imageView.getRight() + dx,
imageView.getBottom() + dy
);
// 记录当前位置,以便下次移动时使用
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
}
return true;
}
});
}
}
```
在这段代码中,我们为 ImageView 控件设置了一个触摸事件监听器,然后在监听器的回调函数中,根据手指移动的距离动态改变了 ImageView 控件的位置。需要注意的是,这里使用了 layout() 方法来更新 ImageView 控件的位置,layout() 方法的参数分别是 ImageView 控件的左、上、右、下四个边缘的坐标。
阅读全文