Я показываю панорамную фотографию, и я хочу, чтобы мой ImageView двигался в соответствии с ориентацией датчика (ориентация моего телефона определяет вид изображения, и он слишком широкий, чтобы отображать его полностью сразу). Когда я вызываю методы, которые меняют мой ImageView (например, setX), мое приложение выходит из строя. Я делаю это в потоке пользовательского интерфейса, поэтому я не знаю, почему это не работает. Код, который относится к датчику, работает нормально.Перемещение ImageView на HorizontalScrollView
Любая помощь будет оценена по достоинству.
public class ImageActivity extends Activity
{
private ImageView imageView;
private LocationManager locationManager;
private String provider;
private SensorManager sensorManager;
public float val = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sensorManager.registerListener(new CustomOrientationListener(), sensor,
SensorManager.SENSOR_DELAY_GAME);
//imageView = (ImageView) findViewById(R.id.imageView1);
}
class CustomOrientationListener implements SensorEventListener {
public CustomOrientationListener() {}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
@Override
public void onSensorChanged(SensorEvent event) {
final float[] values;
if(event.sensor.getType() == Sensor.TYPE_ORIENTATION){
values = event.values;
runOnUiThread(new Runnable(){
@Override
public void run() {
imageView.setTranslationX((int)values[0]);
}
});
}
}
}
}
Опубликовать текст исключения –
Я тестирую его на своем телефоне, и он просто говорит, что приложение падает, или вы имеете в виду какие-то журналы? Если да, где я могу их найти? – user2587107
Если у вас установлен sdk и на вашем пути в терминале вы можете запустить: adb logcat. Большинство IDE также имеют встроенную версию, которую немного легче читать (вы можете искать такие вещи, как исключения). Всякий раз, когда приложение падает, вы должны увидеть исключение и трассировку стека. –