我认为这是可以实现的,因为屏幕旋转行为可以上升到应用程序级别。
cnh2zyt31#
是的,它是可实施的!活动信息屏幕方向景观
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
活动信息屏幕方向肖像
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
活动信息
http://developer.android.com/reference/android/content/pm/ActivityInfo.html请参阅链接:
Button buttonSetPortrait = (Button)findViewById(R.id.setPortrait); Button buttonSetLandscape = (Button)findViewById(R.id.setLandscape); buttonSetPortrait.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View arg0) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } }); buttonSetLandscape.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View arg0) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } });
http://android-er.blogspot.in/2011/08/set-screen-orientation-programmatically.html
bmvo0sr52#
可以,您可以随时使用以下命令通过编程方式设置屏幕方向:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setRequestedOrientation()方法可用于Activity类,因此可在Activity内部使用。这就是您如何获得当前屏幕方向并根据其当前状态进行适当设置的方法:
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); final int orientation = display.getOrientation(); // OR: orientation = getRequestedOrientation(); // inside an Activity // set the screen orientation on button click Button btn = (Button) findViewById(R.id.yourbutton); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { switch(orientation) { case Configuration.ORIENTATION_PORTRAIT: setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; case Configuration.ORIENTATION_LANDSCAPE: setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; } } });
从此处获取:http://techblogon.com/android-screen-orientation-change-rotation-example/编辑此外,您还可以使用Configuration获取屏幕方向:
Configuration
Activity.getResources().getConfiguration().orientation
uurity8g3#
请尽可能不要使用SCREEN_ORIENTATION_LANDSCAPE或SCREEN_ORIENTATION_PORTRAIT,而是用途:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
这两个方向允许用户将设备分别定向为横向或纵向。如果你曾经玩过一个游戏,充电线被插入你的胃,那么你就知道为什么两个方向都可用对用户来说很重要。注:对于手机,至少有几个我已经检查,它只允许“右侧向上”肖像模式,然而,SENSOR_PORTRAIT在平板电脑上工作正常.注意:此功能是在API Level 9中引入的,因此如果您必须支持8或更低版本(目前不太可能),请用途:
setRequestedOrientation(Build.VERSION.SDK_INT < 9 ? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); setRequestedOrientation(Build.VERSION.SDK_INT < 9 ? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
weylhg0b4#
使用此选项设置屏幕的方向:
或
别忘了把这个加到你的清单上
android:configChanges = "orientation"
pu3pd22g5#
工作代码:
private void changeScreenOrientation() { int orientation = yourActivityName.this.getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_LANDSCAPE) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); showMediaDescription(); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); hideMediaDescription(); } if (Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1) { Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } }, 4000); } }
调用这个方法在你的按钮点击
cdmah0mi6#
是的Hariharan答案很好.但您应该在活动标签中的AndroidManifest.xml中添加以下行:
android:screenOrientation="fullSensor" android:configChanges="orientation|screenSize"
如果不添加以上行,Hariharan回答无效。
谢谢本尼!
roqulrg37#
我的同事:
setLandscapeIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setLandscapeIcon.setVisibility(View.GONE); setPortraitIcon.setVisibility(View.VISIBLE); } }); setPortraitIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); setLandscapeIcon.setVisibility(View.VISIBLE); setPortraitIcon.setVisibility(View.GONE); } });
在清单中
android:configChanges = "orientation|screenSize" android:screenOrientation="portrait"
注:设置要求的方向(活动信息屏幕方向肖像);我的设备无法正常工作
yebdmbv48#
安卓-考特林:旋转X轴:
binding.btnRotateHorizontal.setOnClickListener { requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE }
要使Y轴旋转:
binding.btnRotateVertical.setOnClickListener { requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED }
8条答案
按热度按时间cnh2zyt31#
是的,它是可实施的!
活动信息屏幕方向景观
活动信息屏幕方向肖像
活动信息
http://developer.android.com/reference/android/content/pm/ActivityInfo.html
请参阅链接:
http://android-er.blogspot.in/2011/08/set-screen-orientation-programmatically.html
bmvo0sr52#
可以,您可以随时使用以下命令通过编程方式设置屏幕方向:
setRequestedOrientation()方法可用于Activity类,因此可在Activity内部使用。
这就是您如何获得当前屏幕方向并根据其当前状态进行适当设置的方法:
从此处获取:http://techblogon.com/android-screen-orientation-change-rotation-example/
编辑
此外,您还可以使用
Configuration
获取屏幕方向:uurity8g3#
请尽可能不要使用SCREEN_ORIENTATION_LANDSCAPE或SCREEN_ORIENTATION_PORTRAIT,而是用途:
这两个方向允许用户将设备分别定向为横向或纵向。如果你曾经玩过一个游戏,充电线被插入你的胃,那么你就知道为什么两个方向都可用对用户来说很重要。
注:对于手机,至少有几个我已经检查,它只允许“右侧向上”肖像模式,然而,SENSOR_PORTRAIT在平板电脑上工作正常.
注意:此功能是在API Level 9中引入的,因此如果您必须支持8或更低版本(目前不太可能),请用途:
weylhg0b4#
使用此选项设置屏幕的方向:
或
别忘了把这个加到你的清单上
pu3pd22g5#
工作代码:
调用这个方法在你的按钮点击
cdmah0mi6#
是的Hariharan答案很好.但您应该在活动标签中的AndroidManifest.xml中添加以下行:
如果不添加以上行,Hariharan回答无效。
谢谢本尼!
roqulrg37#
我的同事:
在清单中
注:设置要求的方向(活动信息屏幕方向肖像);我的设备无法正常工作
yebdmbv48#
安卓-考特林:
旋转X轴:
要使Y轴旋转: