android - google - विकल्प को हटाना




मैं एंड्रॉइड पर एक पारदर्शी गतिविधि कैसे बना सकता हूं? (12)

मैं एक और गतिविधि के शीर्ष पर पारदर्शी गतिविधि बनाना चाहता हूं।

इसे कैसे प्राप्त किया जा सकता है?


दो तरह से है,

  1. थीम का उपयोग करना। अस्वीकरण
  2. थीम का उपयोग करना। ट्रांसस्क्लेंट। नॉट टिटलेबार

Theme.NoDisplay का उपयोग करना Theme.NoDisplay अभी भी काम करेगा ... लेकिन केवल पुराने एंड्रॉइड डिवाइस पर। एंड्रॉइड 6.0 और उच्चतर पर, थीम.इनडिस्प्ले का उपयोग करके क्रिएट finish() कॉल finish() onCreate() (or, technically, before onResume()) आपके ऐप को क्रैश कर देगा। यही कारण है कि Theme.Translucent.NoTitleBar का उपयोग करना है। Theme.Translucent.NoTitleBar , जो इस सीमा से पीड़ित नहीं है। "


"AppCompat" लाइब्रेरी या "एंड्रॉइड डिज़ाइन सपोर्ट लाइब्रेरी" के साथ यह थोड़ा अलग है:

शैलियों में। Xml:

<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
    <item name="android:background">#33000000</item> <!-- Or any transparency or color you need -->
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>

AndroidManifest.xml में:

<activity>
    android:name=".WhateverNameOfTheActivityIs"
    android:theme="@style/Theme.AppCompat.Translucent"
    ...
</activity>

इसे पारदर्शी थीम असाइन करें

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

नोट 1: ड्रायबल फ़ोल्डर में test.xml बनाएं और निम्न कोड कॉपी करें

   <?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <stroke android:width="2dp" />

    <gradient
        android:angle="90"
        android:endColor="#29000000"
        android:startColor="#29000000" />

    <corners
        android:bottomLeftRadius="7dp"
        android:bottomRightRadius="7dp"
        android:topLeftRadius="7dp"
        android:topRightRadius="7dp" />

</shape>

// नोट: कॉर्नर और आकार आपकी आवश्यकता के अनुसार है।

// नोट 2: एक्सएमएल बनाएं:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/test"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1.09"
            android:gravity="center"
         android:background="@drawable/transperent_shape"
            android:orientation="vertical" >
     </LinearLayout>
    </LinearLayout>

बस अपनी मेनिफेस्ट फ़ाइल में गतिविधि टैग में निम्न पंक्ति जोड़ें जिसे पारदर्शी दिखने की आवश्यकता है।

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

बस गतिविधि पृष्ठभूमि छवि पारदर्शी होने दें। या एक्सएमएल फ़ाइल में थीम जोड़ें:

<activity android:name=".usual.activity.Declaration" android:theme="@android:style/Theme.Translucent.NoTitleBar" />

मैं इसे थोड़ा सा जोड़ना चाहता था क्योंकि मैं एक नया एंड्रॉइड डेवलपर भी हूं। स्वीकृत उत्तर बहुत अच्छा है, लेकिन मैंने कुछ परेशानी में भाग लिया। मुझे यकीन नहीं था कि color.xml फ़ाइल में रंग कैसे जोड़ें। यहां बताया गया है कि यह कैसे किया जाना चाहिए:

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <color name="class_zero_background">#7f040000</color>
     <color name="transparent">#00000000</color>
</resources>

मेरे मूल रंगों में। Xml फ़ाइल में मेरे पास "drawable" टैग था:

<drawable name="class_zero_background">#7f040000</drawable>

और इसलिए मैंने रंग के लिए भी ऐसा किया, लेकिन मुझे समझ में नहीं आया कि "@ रंग /" संदर्भ एक्सएमएल में टैग "रंग" के लिए दिखता है। मैंने सोचा कि मुझे किसी और की मदद करने के लिए इसका भी उल्लेख करना चाहिए।


मैंने अभी दो चीजें की हैं, और यह मेरी गतिविधि को पारदर्शी बना दिया है। वे नीचे हैं।

  1. मैनिफेस्ट फ़ाइल में मैंने गतिविधि टैग में नीचे दिया गया कोड जोड़ा है।

    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
    
  2. और मैंने बस उस गतिविधि के लिए मुख्य लेआउट की पृष्ठभूमि " # 80000000 " के रूप में सेट की है। पसंद

    android:background="#80000000"
    

यह मेरे लिए पूरी तरह से काम करता है।


मैंने पाया है कि सबसे आसान तरीका AndroidManifest में एंड्रॉइड के लिए गतिविधि की थीम सेट करना है android:theme="@android:style/Theme.Holo.Dialog"android:theme="@android:style/Theme.Holo.Dialog"

फिर गतिविधि की getWindow().setBackgroundDrawable(new ColorDrawable(0)); विधि में, getWindow().setBackgroundDrawable(new ColorDrawable(0));


यह इस प्रकार चलता है:

<activity android:name=".usual.activity.Declaration" android:theme="@android:style/Theme.Translucent.NoTitleBar" />

OnCreent फ़ंक्शन में, setContentView के नीचे, इस पंक्ति को जोड़ें:

getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

निम्न शैली को अपने res/values/styles.xml फ़ाइल में जोड़ें (यदि आपके पास कोई नहीं है, तो इसे बनाएं।) यहां एक पूर्ण फ़ाइल है:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

(मान @color/transparent रंग मान #00000000 जिसे मैंने res/values/color.xml फ़ाइल में रखा है। आप बाद में एंड्रॉइड संस्करणों में res/values/color.xml @android:color/transparent भी उपयोग कर सकते हैं।)

फिर अपनी गतिविधि में शैली लागू करें, उदाहरण के लिए:

<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...
</activity>




transparent