Android: एक फुलस्क्रीन एप्लीकेशन बना रहा है




android-theme android-fullscreen (7)

onCreate कॉल में

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

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

एंड्रॉइड स्टूडियो के नवीनतम संस्करण द्वारा पूर्णस्क्रीन प्रदर्शित करने के लिए प्राप्त करने के लिए, मैं एक नई ब्लैंक गतिविधि में क्या सबसे सरल बदलाव कर सकता हूं?

मैं एक फुलस्क्रीन Android एप्लिकेशन बनाना चाहता हूं। मैं एंड्रॉइड स्टूडियो के साथ काम कर रहा हूं। इस पोस्ट से पता चलता है कि मैं एक लाइन जोड़ देता हूं जैसे ...

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>

जब मैं ऐसा करता हूं, तो ऐप संकलित करता है लेकिन यह लॉन्च होने पर क्रैश हो जाता है। यदि मैं लाइन को हटाता हूं, तो ऐप ठीक चलता है, लेकिन एक्शन बार और एक शीर्षक बार के साथ, जैसा कि अन्य उपयोगकर्ताओं द्वारा भी नोट किया गया है।

एंड्रॉइड ऐप बनाने का यह मेरा पहला प्रयास है, इसलिए मेरा ऐप मूल हैलो वर्ल्ड उदाहरण से शायद ही बदला जाए।

संपादित करें: मैंने एक नई परियोजना बनाई, और इसमें केवल एक बदलाव किया। यहाँ त्रुटि लॉग से एक उद्धरण है:

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

नोट: मैं एक पुराने सैमसंग SGH-T499Y पर परीक्षण कर रहा हूं, Android 2.2 (Froyo) चला रहा हूं


अद्यतन उत्तर मैंने android:windowIsTranslucent जोड़ा android:windowIsTranslucent यदि आपके पास गतिविधि की शुरुआत में सफेद स्क्रीन है

मूल्यों / शैलियों में नई शैली बनाएं। 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>

अपने 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>

बस अपने वर्तमान विषय में निम्नलिखित विशेषता जोड़ें:

<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 कुछ ऐसा दिखाए जो आपकी समस्या को हल करने में आपकी मदद कर सके

वैसे भी आप इसे प्रोग्रामेटिक रूप से करने की कोशिश कर सकते हैं:

 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:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"> लागू करने का प्रयास कर रहे हैं, वह ActionBarActivity का विस्तार कर रही है, जिसे लागू करने के लिए AppComp theme की आवश्यकता है।

ActionBarActivity बजाय अपनी गतिविधि को Activity से बढ़ाएं

आपको अपने जावा वर्ग को थोड़ा सा तदनुसार बदलना पड़ सकता है।

अगर आप स्टेटस बार भी हटाना चाहते हैं तो onCreateView मेथड में setContentView(layout) से पहले इसका इस्तेमाल करें

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

मेरे पास हाल ही में एक ही मुद्दा था और निम्न पद के साथ-साथ (ऊपर रोहित 5k2 के समाधान के अलावा) से लाभ हुआ:

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

चरण 3 में, MainActivity ActionBarActivity (जैसा कि रोहित 5k2 उल्लेख किया गया है) के बजाय Activity विस्तार करता है। NoTitleBar में NoTitleBar और Fullscreen थीम तत्वों को सही स्थानों पर रखना भी बहुत महत्वपूर्ण है (चरण 4 पर एक नज़र डालें)।


Android में एक पूर्ण पृष्ठ रखने के लिए आप निम्न कोड का उपयोग कर सकते हैं

चरण 1: style.xml अनुभाग में विषय बनाएं

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

चरण 2: AndroidManifest.xml पर थीम जोड़ें

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

चरण 3: जावा कोड अनुभाग

उदाहरण के लिए आप onCreate () विधि में निम्नलिखित कोड जोड़ सकते हैं।

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




android-fullscreen