使用button以编程方式更改屏幕方向

我认为这是可以实现的,因为屏幕旋转行为可以上升到应用程序级别。

是的,它是可以实现的!

ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

ActivityInfo.SCREEN_ORIENTATION_PORTRAIT

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

ActivityInfo

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

是的,您可以随时以编程方式设置屏幕方向

 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获取屏幕方向:

 Activity.getResources().getConfiguration().orientation 

用这个来设置屏幕的方向:

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

要么

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

不要忘记把这个添加到你的清单:

 android:configChanges = "orientation" 

只要有可能,请不要使用SCREEN_ORIENTATION_LANDSCAPE或SCREEN_ORIENTATION_PORTRAIT。 而是使用:

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); 

这些允许用户将设备分别定向到横向或纵向。 如果你曾经玩过充电电缆的游戏,那么你肯定知道为什么两个方向都对用户来说很重要。

注意:对于手机,至less有几个我已经检查,它只允许“正确的一面”肖像模式,但是,SENSOR_PORTRAIT在平板电脑上正常工作。

注意:此function是在API级别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);