[英]How do I detect screen rotation on android?
我想通过本机检测屏幕旋转。
例如,当发生触摸事件时,我们可以通过/ dev / input / event *事件设备进行检测
这可能吗 ?
我的意思是,不使用Java。 只需使用本机方法。
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
int rotation = disp.getRotation(); // Android 2.2
Log.i( "Rotation", "rotation : " + rotation );
switch ( rotation )
{
case Surface.ROTATION_0:
Log.i( "Roation", "Portrait : 0" );
break;
case Surface.ROTATION_90:
Log.i( "Roation", "Landscape : 90" );
break;
case Surface.ROTATION_180:
Log.i( "Roation", "Portrait : 180" );
break;
case Surface.ROTATION_270:
Log.i( "Roation", "Landscape : 270" );
break;
}
如果您使用的是NativeActivity基础结构(从问题上来看并不明显),则在结构ANativeActivityCallbacks
有一个onConfigurationChanged
回调,该回调作为ANativeActivity
对象的一部分提供给您,该对象由android_app
结构中的activity
指向,这是android_main
的参数。
只需将启动时的回调重置为您的函数即可:
void OnConfig(ANativeActivity *ac)
{
//...
}
state->activity->callbacks->onConfigurationChanged = OnConfig;
如果您确实在使用NativeActivity,请用native-activity
标记问题,而不仅仅是android-ndk
。 环境之间存在足够的差异,因此需要额外的标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.