web-dev-qa-db-fra.com

Android: faire une application en plein écran

Quel est le changement le plus simple que je puisse apporter à une nouvelle activité vide, créée par la dernière version d'Android Studio, pour que l'application apparaisse en plein écran?

Je souhaite créer une application Android en plein écran. Je travaille avec Android Studio . Cet article suggère d'ajouter une ligne telle que ...

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

... dans le fichier AndroidManifest.xml, comme indiqué ci-dessous:

    <?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>

Lorsque je fais cela, l'application se compile mais se bloque au lancement. Si je supprime la ligne, l'application fonctionne correctement, mais avec la barre d'action et une barre de titre, comme le notent également d'autres utilisateurs.

Il s'agit de ma première tentative de création d'une application Android. Mon application est donc à peine modifiée par rapport à l'exemple d'origine de Hello World.

EDIT: J’ai créé un nouveau projet et n’y ai apporté que celui-ci. Voici un extrait du journal des erreurs:

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)...

REMARQUE: je teste un vieux Samsung SGH-T499Y sous Android 2.2 (Froyo).

33
James Newton

Vous rencontrez ce problème car l'activité à laquelle vous essayez d'appliquer le Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen"> est une extension d'ActionBarActivity qui nécessite l'application du thème AppCompat.

Étendez votre activité de Activity plutôt que de ActionBarActivity

Vous devrez peut-être modifier votre classe Java en conséquence.

Si vous souhaitez également supprimer la barre d'état, utilisez ceci avant setContentView(layout) dans la méthode onCreateView

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

Ajoutez simplement l'attribut suivant à votre thème actuel:

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

Par exemple:

<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>
20
Asaf Pinhassi

il suffit de le faire dans votre fichier manifeste dans votre balise d'activité

Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
14
user3637297

dans mon cas tout fonctionne bien. Voir dans logcat. Peut-être que logcat montre quelque chose qui peut vous aider à résoudre votre problème 

Quoi qu'il en soit, vous pouvez essayer de le faire par programme:

 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);
        }
 }
8
DMan

Réponse mise à jour J'ai ajouté Android:windowIsTranslucent si vous avez un écran blanc au début de l'activité. 

il suffit de créer un nouveau style dans values ​​/ styles.xml

<?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>

depuis votre AndroidManifest.xml, ajoutez du style à votre activité 

Android:theme="@style/AppTheme"

être comme ça

<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>
7
Mina Fawzy

Dans l'appel onCreate

requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);
2
Xar E Ahmer

J'ai récemment eu exactement le même problème et j'ai également bénéficié du post suivant (en plus de la solution de Rohit5k2 ci-dessus):

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

À l'étape 3, MainActivity étend Activity au lieu de ActionBarActivity (comme Rohit5k2 l'a mentionné). Il est également très important de placer les éléments de thème NoTitleBar et Fullscreen aux endroits appropriés dans le fichier AndroidManifest.xml (reportez-vous à l'étape 4).

0
aparkhills

Vous pouvez utiliser les codes suivants pour avoir une page complète dans Android

Étape 1: Créer un thème dans la section styles.xml

<style name="AppTheme.Fullscreen" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

Étape 2: Ajouter un thème sur AndroidManifest.xml

<activity
Android:name=“.Activity”
Android:theme="@style/AppTheme.Fullscreen"/>

Étape 3: Section des codes Java

Par exemple, vous pouvez ajouter les codes suivants à la méthode onCreate ().

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
0
Matin Soleimani