我认为这是可以实现的,因为屏幕旋转行为可以上升到应用程序级别。以编程方式使用按钮更改屏幕方向
回答
是的,它是可以实现的!
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()方法可用于活动类,因此它可以在您的活动中使用。
这是你怎么能获得当前的屏幕方向并设置adequatly根据其当前的状态:
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
我会建议使用'getRequestedOrientation()'获取当前的屏幕方向:http://stackoverflow.com/a/21909327/1037294 –
详尽的答案。 – pdegand59
使用此设置屏幕的方向:
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);
这些允许用户将设备分别定向到横向或纵向。如果你曾经玩过充电电缆进入你的肚子,那么你就知道为什么这两种方向对用户来说都很重要。
注意:对于手机,至少有几个我检查过,它只允许“右侧”肖像模式,但是,SENSOR_PORTRAIT可以在平板电脑上正常工作。
注:此功能是在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);
- 1. Cocos2d-x - 以编程方式更改屏幕方向
- 2. 在镜像模式下以编程方式更改屏幕方向Windows 7
- 3. mgwt - 以编程方式更改方向
- 4. iOS Game Center的“注册”屏幕 - 以编程方式更改方向
- 5. 以编程方式更改标签方向,编程方式
- 6. Android - 更改屏幕方向
- 7. Qt屏幕方向更改
- 8. ANDROID屏幕方向更改
- 9. 屏幕方向更改
- 10. 如何以编程方式更改屏幕保护程序?
- 11. 编程方式更改按钮
- 12. 以屏幕截图(以编程方式)
- 13. 以编程方式更改按钮的onClick方法?
- 14. 以编程方式更改iphone屏幕的亮度?
- 15. 以编程方式更改屏幕颜色平衡
- 16. 以编程方式更改启动屏幕图像
- 17. 如何以编程方式更改屏幕超时?
- 18. 如何以编程方式更改屏幕分辨率?
- 19. 在android中以编程方式更改屏幕亮度
- 20. 如何以编程方式更改锁定屏幕类型?
- 21. 如何以编程方式更改屏幕分辨率
- 22. 以编程方式更改iPad上的屏幕分辨率
- 23. 以编程方式更改android屏幕分辨率?
- 24. 以编程方式更改屏幕分辨率?
- 25. 在Swift 3中以编程方式更改屏幕
- 26. 以编程方式更改登录屏幕的背景图像?
- 27. 如何以编程方式更改Bootstraps屏幕宽度断点?
- 28. 以编程方式更改屏幕锁定超时
- 29. 锁定屏幕以编程方式
- 30. 以编程方式触摸屏幕phonegap
你试过吗? :http://stackoverflow.com/questions/14873755/change-screen-orientation-in-android-without-reloading-the-activity –