imageview - 在Android中使用加速度计时ImageView图像走出屏幕
问题描述
这是我的 Java 代码 我只想将 ImageView 图像限制为屏幕边界或停止走出屏幕... ScreenShort 在使用应用程序时显示输出
包 com.example.javagame;
公共类 MainActivity 扩展 AppCompatActivity 实现 SensorEventListener {
private SensorManager sensorManager;
private Sensor accelerometer;
private long lastUpdate;
ImageView mDrawable;
public static int x = 0;
public static int y = 0;
public static int z = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawable = (ImageView) findViewById(R.id.checkPic);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
lastUpdate = System.currentTimeMillis();
int mWidth = this.getResources().getDisplayMetrics().widthPixels;
int mHeight = this.getResources().getDisplayMetrics().heightPixels;
Log.e("centreX", "" + mWidth);
Log.e("centreY", "" + mHeight);
mDrawable.setPivotX(100);
mDrawable.setPivotY(100);
}
@Override
protected void onResume() {
super.onResume();
sensorManager.registerListener(this, accelerometer,
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
x -= (int) event.values[0];
y += (int) event.values[1];
mDrawable.setY(y);
mDrawable.setX(x);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
解决方案
推荐阅读
- java - Java 正则表达式缺少匹配项
- angular - 在 OpenLayers 中选择特征/标记时无法调用方法
- flutter - 如何在 Flutter 中使用 JWT 和 WebSocketChannel
- conky - Conky/Dzen2 可点击区域
- tensorflow - 尝试安装 tensorflow 时找不到“cudart64_100.dll”
- algorithm - 你如何计算这个算法的空间复杂度?
- php - 我想在 Laravel 中更新图像
- android - 我的 Firebase AdsMob 在运行时没有出现
- makefile - 警告:modules_install:缺少“System.map”文件。跳过 depmod
- mysql - 使用 Intersect 和电子邮件格式的多个输入值时获取 ER_PARSE_ERROR