使用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);