Android:制作全屏应用程序

我可以对最新版本的Android Studio创build的新空白活动进行最简单的更改,以使应用程序呈现全屏状态?

我想创build一个全屏Android应用程序。 我正在使用Android Studio。 这篇文章build议我添加一行如…

android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"

…到AndroidManifest.xml文件,如下所示:

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lexogram.james.blackslate" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.lexogram.james.blackslate.MainActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

当我这样做,应用程序编译,但发射崩溃。 如果我删除线,应用程序运行良好,但与操作栏和标题栏,其他用户也注意到。

这是我第一次尝试创build一个Android应用程序,所以我的应用程序很难从最初的Hello World例子中修改。

编辑:我创build了一个新的项目,并做了这一个更改。 这里是错误日志的摘录:

 FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lexogram.james.test/com.lexogram.james.test.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)... 

注意:我正在testing运行Android 2.2(Froyo)的老三星SGH-T499Y,

Solutions Collecting From Web of "Android:制作全屏应用程序"

你遇到了这个问题,因为你正在尝试应用android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">来扩展ActionBarActivity,它需要应用AppCompat主题。

Activity而不是从ActionBarActivity扩展你的活动

你可能不得不相应地改变你的Java类。

如果你想删除状态栏,那么在onCreateView方法的setContentView(layout)之前使用这个

  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

只需在您的清单文件中的活动标签中执行此操作即可

 android:theme="@style/Theme.AppCompat.Light.NoActionBar" 

只需将以下属性添加到您的当前主题:

 <item name="android:windowFullscreen">true</item> 

例如:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/orange</item> <item name="colorPrimaryDark">@android:color/holo_orange_dark</item> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> </style> 

在我的情况一切正常。 请参阅logcat。 也许logcat显示的东西,可以帮助你解决你的问题

无论如何,你可以尝试以编程方式:

  public class ActivityName extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // remove title requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); } } 

更新回答我添加了android:windowIsTranslucent ,以防在活动开始时出现白屏

只需在values / styles.xml中创build新的样式

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <!-- to hide white screen in start of window --> <item name="android:windowIsTranslucent">true</item> </style> </resources> 

从您的AndroidManifest.xml添加样式到您的活动

android:theme="@style/AppTheme"

就是这样

 <activity android:name=".Splash" android:theme="@style/AppTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

onCreate调用

 requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

我最近有同样的问题,并从以下post中受益(除了上面的Rohit5k2的解决scheme):

https://bsgconsultancy.wordpress.com/2015/09/13/convert-any-website-into-android-application-by-using-android-studio/

在第3步中, MainActivity扩展了Activity而不是ActionBarActivity (如Rohit5k2所提到的)。 将NoTitleBarFullscreen主题元素放到AndroidManifest.xml文件中的正确位置也非常重要(请参阅步骤4)。