Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置

时间:2023-03-08 16:03:21
  Android内置了方向感应器的支持。Android会根据所处的方向自动在竖屏与横屏间切换。但是有的应用程序只能在横/竖屏时运行,比如某些游戏,此时我们要锁定该Activity运行时的屏幕方向,<activity>节点的
android:screenOrientation属性可以完成该项任务
1.设置屏幕方向---设置全屏---设置窗体模式
  A.设置屏幕方向:
  * 1.Androidmanifest.xml设置,android:screenOrientation="landscape"
  * 2.代码设置横竖屏(landscape:横屏---portrait:竖屏),一定在setContentView()前面   B.设置全屏:
  * 1.代码实现--getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  * 2.Androidmanifest.xml设置Activity的主题,android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"   C.设置窗体模式:
  * 1.代码实现--getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  * 2.Androidmanifest.xml设置Activity的主题,android:theme="@android:style/Theme.Dialog"

Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置

2.代码实现  
  (1)ScreenOrientationActivity.class
/**
* A.设置屏幕方向
* 1.Androidmanifest.xml设置,android:screenOrientation="landscape"
* 2.代码设置横竖屏(landscape:横屏---portrait:竖屏),一定在setContentView()前面
*
* B.设置全屏:
* 1.代码实现--getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
* 2.Androidmanifest.xml设置Activity的主题,android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"
* C.设置窗体模式:
* 1.代码实现--getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
* 2.Androidmanifest.xml设置Activity的主题,android:theme="@android:style/Theme.Dialog"
*/
public class ScreenOrientationActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //代码设置横竖屏(landscape:横屏---portrait:竖屏)
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //设置全屏
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//去除标题
//requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_scree_oritation);
}
}
 
 (2)activity_scree_oritation.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_scree_oritation"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.langdon.taiyang.androidtest.activity.ScreenOrientationActivity">
<TextView
android:text="屏幕方向"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>

  

(3)Androidmanifest.xml

<activity
android:name=".activity.ScreenOrientationActivity"
android:theme="@android:style/Theme.Dialog">
<!-- android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"
android:screenOrientation="landscape">-->
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

  

3.效果图如下:

Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置 Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置 Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置 Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置