安卓全屏设置实现(基于Activity与AppCompatActivity)

为了让新手少走点弯路,现在新建的项目多大自动继承自AppCompatActivity。
如果采用以前的实现方法,都会出现报错的情况,很多博客只讲其一不讲其二
我在这里 两种方法都会提到

Activity下的实现
以下方法只能基于Activity,继承AppCompatActivity则不能实现。
一 . 通过代码
在setContentView之前执行:

requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏

二. 调用Android自带的Theme
直接在AndroidManifest.xml中需要全屏显示的Activity属性中添加

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

三 . 自己定义全屏Theme
在style.xml文件中定义theme(如果没有style.xml,在res/values目录下创建)

<resources> 
    <style name="Theme.NoTitle_FullScreen"> 
        <item name="android:windowNoTitle">true</item>    
        <item name="android:windowFullscreen">true</item>      
    </style> 
</resources>

直接在AndroidManifest.xml中需要全屏显示的Activity属性中添加

android:theme="@style/Theme.NoTitle_FullScree"





AppCompatActivity下的实现
* 一. 自己定义全屏Theme*

<style name="MyStyle" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>



二. 自己定义全屏Theme
在上Activity上提到的方法一与方法二在AppCompatActivity中是会报错的
方法三在AppCompatActivity中是不会报错的,但并不会真正实现全屏
会存在ActionBar无法隐藏的情况

一 . 基于上面Activity上的方法三,隐藏ActionBar
我们可以通过代码隐藏ActionBar , 记得初始化ActionBar 直接获取会报空指针

 getSupportActionBar().Hide();

二 . 自己定义全屏Theme
这里跟上面的方法三类似

   <style name="AppTheme.FullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowActionBar">false</item>
    </style>
Android中,想要实现Activity全屏显示,通常需要通过覆盖`onCreate()`、`onStart()`, `onResume()`等生命周期方法,并设置一些属性来达到目的。以下是大致步骤: 1. **修改主题**: 使用一个支持全屏模式的主题,例如`Theme.NoTitleBar.Fullscreen` 或者自定义一个主题,将`<item name="android:windowFullscreen">true</item>`添加到`styles.xml`文件中。 ```xml <style name="FullScreenTheme" parent="Theme.AppCompat"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:windowFullscreen">true</item> </style> ``` 2. **创建Activity并应用主题**: 在创建Activity时,将其主题设置为你刚才定义的全屏主题。例如: ```java public class FullScreenActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_full_screen); this.setTheme(R.style.FullScreenTheme); // 使用全屏主题 } } ``` 3. **去除状态栏** (仅限API 21及以上): 如果你还想移除设备上部的状态栏,可以使用沉浸式设计(Translucent Status Bar),添加以下代码: ```java getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); ``` 4. **处理返回键**: 全屏模式下可能需要自定义处理返回键的行为,比如关闭Activity。可以在`onBackPressed()`方法里实现。 注意:以上操作可能会导致某些系统功能不可见,如导航栏、硬件菜单等,所以确保在实际项目中权衡是否真的需要全屏显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值