Android使用Senson获取设备方向
我正在开发一个应用程序,在一个服务类中,我使用WindowManager来扩展视图。因此,通常视图布局会根据设备方向更改其方向,但当我打开相机应用程序时,方向不会更改。如下图所示:- 因此,如何根据设备方向更改视图方向Android使用Senson获取设备方向,android,android-service,orientation,android-sensors,android-windowmanager,Android,Android Service,Orientation,Android Sensors,Android Windowmanager,我正在开发一个应用程序,在一个服务类中,我使用WindowManager来扩展视图。因此,通常视图布局会根据设备方向更改其方向,但当我打开相机应用程序时,方向不会更改。如下图所示:- 因此,如何根据设备方向更改视图方向 谢谢确定您的设备的自然方向是否在横向/纵向中,或者您的应用程序的资源是否在横向/纵向中呈现是有区别的。听起来你想要前者: int getNaturalOrientation() { WindowManager windowManager = (WindowManage
谢谢确定您的设备的自然方向是否在横向/纵向中,或者您的应用程序的资源是否在横向/纵向中呈现是有区别的。听起来你想要前者:
int getNaturalOrientation() {
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display defaultDisplay = windowManager.getDefaultDisplay();
int rotation = defaultDisplay.getRotation();
if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) {
if (display.getDisplayHeight() >= display.getDisplayWidth()) {
return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
}
return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
} else {
if (display.getDisplayHeight() < display.getDisplayWidth()) {
return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
}
return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
}
}
int getNaturalOrientation(){
WindowManager WindowManager=(WindowManager)context.getSystemService(context.WINDOW\u服务);
Display defaultDisplay=windowManager.getDefaultDisplay();
int rotation=defaultDisplay.getRotation();
如果(旋转==曲面.rotation_0 | | rotation==曲面.rotation_180){
如果(display.getDisplayHeight()>=display.getDisplayWidth()){
返回ActivityInfo.SCREEN\u方向\u纵向;
}
返回ActivityInfo.SCREEN\u方向\u横向;
}否则{
if(display.getDisplayHeight()
~受Chromium src中代码的启发:官方Android不支持浮动活动,因此这取决于您的供应商。我曾想过使用SensonEventListner,但怀疑这是否会导致应用程序速度变慢,Android手机升温变快?