Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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
Android 如果方向设置为纵向,是否仍能检测到方向变化?_Android_Animation_Button_Sensors_Screen Orientation - Fatal编程技术网

Android 如果方向设置为纵向,是否仍能检测到方向变化?

Android 如果方向设置为纵向,是否仍能检测到方向变化?,android,animation,button,sensors,screen-orientation,Android,Animation,Button,Sensors,Screen Orientation,我正在尝试使用OrientationEventListener检测设备方向的变化,以便在布局设置为纵向时,使一些按钮随设备方向旋转。我想知道使用SensorEventListener是否是一个更好的主意,但我不知道如何使用,因为我以前从未使用过传感器。有没有办法做到这一点 OrientationEventListener是正确的选择。你为什么认为SensorEventListener更好 这样做: OrientationEventListener orientationEventListener

我正在尝试使用OrientationEventListener检测设备方向的变化,以便在布局设置为纵向时,使一些按钮随设备方向旋转。我想知道使用SensorEventListener是否是一个更好的主意,但我不知道如何使用,因为我以前从未使用过传感器。有没有办法做到这一点

OrientationEventListener是正确的选择。你为什么认为SensorEventListener更好

这样做:

OrientationEventListener orientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {

    @Override
    public void onOrientationChanged(int angle) {
        if(angle > 260 && angle < 280) {
            button.setRotation(90);
        } else if(angle > 80 && angle < 100) {
            button.setRotation(270);
        } else if(angle > 350 || angle < 10){
            button.setRotation(0);
        }
    }
};
orientationEventListener.enable();
OrientationEventListener OrientationEventListener=新的OrientationEventListener(这是SensorManager.SENSOR\u DELAY\u UI){
@凌驾
公共空间onOrientationChanged(内角){
如果(角度>260和角度<280){
按钮。设置旋转(90);
}否则,如果(角度>80和角度<100){
按钮。设置旋转(270);
}否则,如果(角度>350 | |角度<10){
按钮。设置旋转(0);
}
}
};
orientationEventListener.enable();

我认为,一个OrientationEventListener总能检测到肖像。除此之外,我对OrientationEventListener做了非常类似的事情,它完全有效。它将检测设备的角度,这更灵活。在你的链接中,这个人覆盖了onConfigurationChanged,显然它不会工作。太好了,这完全是我想要做的。要检测设备的角度并相应地旋转按钮,您是否有一些示例可以指导我?我编辑了答案,注意onOrientationChanged和setRotation中的角度定义不同,因此代码看起来有点混乱。你可以看文件。