Android Activity 常用功能设置(全屏、横竖屏等)
Activity全屏设置
方式1:AndroidManifest.xml
<activity android:name="myAcitivty" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
如果应用程序中所有窗口都采用同一主题,可以直接通过<application>标签的<android:theme>属性设置这个主题,代码如下:
<application android:name="myAcitivty" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
....
</application>
如果不想使用系统提供的主题,还可以自定义主题.例如,可以在res/values目录建立一个styles.xml文件.
<resources>
<!-- Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices. -->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!-- Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here. -->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<style name="Theme.FullScreen" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
方式2:代码实现
requestWindowFeature(Window.FEATURE_NO_TITLE); // 隐藏标题栏必须在setContentView(R.layout.main) 之前因为标题栏属于窗口,而窗口上的所有控件都是由setContentView(R.layout.main) 方法处理的.
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); // 隐藏状态栏
//可以在setContentView(R.layout.main) 之前或者之后.而setFlag方法只是控制系统UI的,所以该方法可以在代码的任何位置调用.
注意:设置全屏的俩段代码必须在setContentView(R.layout.main) 之前,不然会报错。
Activity横竖屏设置
方式1:AndroidManifest.xml
<activity android:name="myAcitivty" android:screenOrientation="landscape" /> // 或者 “portrait”
方式2:代码实现
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
获取横屏方向
int orientation = this.getResources().getConfiguration().orientation;
orientation 的常用取值可以为 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE(横屏) 或 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT(竖屏)
Activity屏幕一直显示
1:AndroidManifest.xml添加权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
2:代码实现
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);