2013-07-09 22 views
12

was ich erreichen möchte ist Aktivität mit dialogähnlicher Transparenz mit 100% Sichtbarkeit von RelativeLayout Inhalt. Dies ist xml Aktivität:Aktivität mit transparentem Hintergrund

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="50dip" 
     android:layout_marginLeft="8dip" 
     android:layout_marginRight="8dip" 
     android:layout_marginTop="50dip"> 
     (...) 
    </RelativeLayout> 
</LinearLayout> 

und das ist manifest:

<activity 
     android:name="com.acentic.rcontrol.activities.MyActivity" 
     android:theme="@android:style/Theme.Translucent.NoTitleBar" > 
</activity> 

Momentan Hintergrund noch sichtbar ist, was mache ich falsch?

--- EDIT: Ich habe

android:background="#c0000000" 

zu Linearlayout. Jetzt ist der Hintergrund transparent, wie ich es wollte, aber auch TextViews in RelativeLayout sind auch transparent .. wie man es ändert?

+0

mögliche Duplikate von [Wie transparente Aktivität in Android erstellen?] (Http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android) – g00dy

+0

set android: background = " # 000000 "zum RelativeLayout – sweggersen

+0

Code in Link überprüfen, der für mich funktioniert. http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android/38589105#38589105 –

Antwort

1

Nachdem Sie die Transparenz von LinearLayout festgelegt haben, versuchen Sie, die Transparenz des untergeordneten Elements auf den gewünschten Wert zu setzen. Dadurch sollten sie eine andere Transparenz als LinearLayout haben. Versuch es.

7

Versuchen

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

in Ihrer Tätigkeit zu setzen.

Sie können auch versuchen, diese in einer Art zu tun:

<style name="AppTheme" parent="@android:style/Theme.Translucent.NoTitleBar"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:colorBackgroundCacheHint">@null</item> 
</style> 
+0

1. Ansatz funktioniert nicht an meiner Seite, 2. gibt volle Hintergrundtransparenz + TextViews in RelativeLayout sind semitransparent, die nicht berechtigt ist – Mariusz

5

Fügen Sie die folgende Art in Ihrem res/values/styles.xml-Datei (., Wenn Sie noch kein Konto haben, erstellen Sie es) ist die komplette 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">@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, die ich in res/values/color.xml Datei setzen. Spätere Versionen von Android eine transparente Farbe für Sie definieren, so mit diesen Versionen Sie @android:color/transparent direkt im st verwenden können YLE und überspringen die color.xml Schritt (beachten Sie die zusätzliche android: in der Definition))

dann den Stil, um Ihre Tätigkeit gelten, zum Beispiel:

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

Entnommen here.

5

erstellen Stil

<style name="MyTransparentTheme" parent="android:Theme.Dialog"> 
     <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> 

dies manifestieren:

<activity 
      android:name="your package.activity" 
      android:theme="@style/MyTransparentTheme"> 
     </activity> 
+0

hat gut funktioniert - getestet auf Android 5.0.1 –

+0

funktionierte nicht ab diesem Datum –

3

I android hinzugefügt: background = "# c0000000" zu Linearlayout. Jetzt Hintergrund ist transparent, wie ich wollte, aber auch TextViews innerhalb RelativeLayout sind auch transparent .. wie man es ändert?

Fügen Sie Ihrem Element einen soliden Hintergrund hinzu. Auf diese Weise wird die RelativeLayout einen festen Hintergrund haben, und nur die Ränder werden transparent sein.

Verwandte Themen