Frage Wie erstelle ich eine transparente Aktivität auf Android?


Ich möchte eine transparente Aktivität über einer anderen Aktivität erstellen.

Wie kann ich das erreichen?


782
2018-02-01 13:28


Ursprung


Antworten:


Fügen Sie den folgenden Stil in Ihrem ein res/values/styles.xml Datei (wenn Sie keine haben, erstellen Sie sie.) Hier ist eine vollständige Datei:

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

(Der Wert @color/transparent ist der Farbwert #00000000 was ich in den res/values/color.xml Datei. Sie können auch verwenden @android:color/transparent in späteren Android-Versionen.)

Wenden Sie dann den Stil auf Ihre Aktivität an, zum Beispiel:

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

1222
2018-04-23 17:37



Es geht so:

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

175
2018-02-01 14:47



Mit der "AppCompat" -Bibliothek oder "Android Design Support Library" ist es ein bisschen anders:

In der Datei styles.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>

In der AndroidManifest.xml:

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

81
2017-07-28 21:26



Deklarieren Sie Ihre Aktivität im Manifest wie folgt:

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

Und fügen Sie Ihrem Layout einen transparenten Hintergrund hinzu.


32
2017-07-02 05:07



Weisen Sie das durchscheinende Thema der Aktivität zu, die Sie in der Android-Manifestdatei Ihres Projekts transparent machen möchten:

<activity
    android:name="YOUR COMPLETE ACTIVITY NAME WITH PACKAGE"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

25
2017-10-29 05:36



Ich wollte etwas hinzufügen, da ich auch ein neuer Android-Entwickler bin. Die angenommene Antwort ist großartig, aber ich habe einige Probleme bekommen. Ich war mir nicht sicher, wie ich der colors.xml-Datei die Farbe hinzufügen sollte. Hier ist, wie es gemacht werden sollte:

Farben.xml

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

In meiner ursprünglichen colors.xml Datei hatte ich das Tag "drawable":

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

Und das habe ich auch für die Farbe getan, aber ich habe nicht verstanden, dass die "@ color /" -Referenz das Tag "color" in der XML sucht. Ich dachte, ich sollte das auch erwähnen, um anderen zu helfen.


14
2018-04-22 12:55



Ich habe es auf 2.3.3 erreicht, indem ich einfach hinzugefügt habe android:theme="@android:style/Theme.Translucent" im Aktivitäts-Tag im Manifest.

Ich kenne keine niedrigeren Versionen ...


13
2017-09-21 12:07