Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在水平滚动视图上移动图像视图_Java_Android_Imageview_Orientation_Horizontalscrollview - Fatal编程技术网

Java 在水平滚动视图上移动图像视图

Java 在水平滚动视图上移动图像视图,java,android,imageview,orientation,horizontalscrollview,Java,Android,Imageview,Orientation,Horizontalscrollview,我正在显示一张全景照片,我希望我的ImageView根据传感器方向移动(我的手机方向决定图像视图,它太宽,无法一次完整显示)。当我调用更改ImageView的方法(例如setX)时,我的应用程序崩溃。我是在UI线程中完成的,所以我不知道为什么这不起作用。表示传感器工作正常的代码 任何帮助都将不胜感激 public class ImageActivity extends Activity { private ImageView imageView; private LocationManager

我正在显示一张全景照片,我希望我的ImageView根据传感器方向移动(我的手机方向决定图像视图,它太宽,无法一次完整显示)。当我调用更改ImageView的方法(例如setX)时,我的应用程序崩溃。我是在UI线程中完成的,所以我不知道为什么这不起作用。表示传感器工作正常的代码

任何帮助都将不胜感激

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]);

                }

              });
          }

      }

  }

}

是的,我的电脑上有Android SDK,但我在手机上测试我的应用程序,所以我不知道如何读取日志,因为我不知道何时发布异常文本我在手机上测试它,它只是说应用程序崩溃,或者你指的是某种日志?如果是,我在哪里可以找到它们?如果您已经安装了sdk,并且在您的路径中,在终端中,您可以运行:adb logcat。大多数IDE都有一个内置版本,更易于阅读(您可以搜索异常之类的内容)。每当应用程序崩溃时,你都会看到异常和堆栈跟踪。我得到:[adb:未找到],但我不知道你指的是哪种SDK,我在PC上编写应用程序,只在手机上测试,我没有在手机上安装SDK,我指的是安卓SDK。您必须已将其安装在用于开发Android应用程序的计算机上?您是否也在使用Eclipse或其他IDE编写代码?看看: