android:全屏设置 + 去标题 + 只去程序标题栏 (应用和activity设置)

注意:此篇文章的標題全部是針對activity是繼承與Activity而不是AppCompatActivity

android:全屏设置 + 去标题 + 只去程序标题栏 (应用和activity设置)


在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果:

其一,通过在代码中可以设置,

其二,通过manifest配置文件来设置全屏。

 

其一:在代码onCreate里面setContentView之前设置(如下)
public void onCreate(Bundle savedInstanceState) {  

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


      super.onCreate(savedInstanceState);
      setContentView(R.layout.main); 
 
 
}   

       注意:在代码中设置的话,设置无标题和设置全屏的两段代码要放置在super.onCreate(savedInstanceState); setContentView(R.layout.main)(界面渲染,完成了再全屏是不行的)代码的前面。要不然会报错。

报错Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content

 

其二:在manifest配置文件中设置

  • 第一种方法

第一步①在res/values 目录创建个theme.xml文件(用来放样式)

<?xml version="1.0" encoding="utf-8"?> 
<resources>    
  <!-- name 是Style的名称,parent 继承那个父类样式 --> 
  <style name="theme_fullScreen" parent="android:Theme.Black">    //5.0以上版本parent="Theme.AppCompat.Light"
       <item name="android:windowNoTitle">true</item>  <!-- 设置无标题 --> 
         <item name="android:windowFullscreen">?android:windowNoTitle</item> <!-- 是否填充慢屏幕,引用android:windowNoTitle 的值 ?android:windowNoTitle,取决于android:windowNoTitle的值-->
  </style>
</resources>

第二步②<activity android:name=".login.LoginActivity"  android:theme="@style/theme_fullScreen"/>

  • 第二种方法

<?xml version="1.0" encoding="utf-8"?>   
<manifest xmlns:android="http://schemas.android.com/apk/res/android"   
      package="com.andyidea"   
      android:versionCode="1"   
      android:versionName="1.0">   
    <uses-sdk android:minSdkVersion="8" />   
    <application android:icon="@drawable/icon" android:label="@string/app_name">   
        <activity android:name=".login.LoginActivity"    
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"   
                  android:label="@string/app_name">   
            <intent-filter>   
                <action android:name="android.intent.action.MAIN" />   
                <category android:name="android.intent.category.LAUNCHER" />   
            </intent-filter>   
        </activity>   
    </application>   
</manifest> 

 

只去程序标题栏 设置整个应用 no title

第三种:这种在一般的应用中不常用,就是在res/values目录下面新建一个style.xml的文件例如
 

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
  
<resources>
<style name="theme_notitle">
<item name="android:windowNoTitle">true</item>
</style>
</resources>
复制代码

这样,我们就自定义了一个style,就相当于一个主题,然后在AndroidManifest.xml文件中定义 


<application android:icon="@drawable/icon"
  
android:label="@string/app_name"
android:theme="@style/theme_notitle">

这样也可以达到去掉标题栏的效果

你可能感兴趣的:(Activity,主題,標題欄)