2013-07-09 23 views
12

ciò che voglio ottenere è un'attività con trasparenza simile a quella di un dialogo con visibilità al 100% del contenuto di RelativeLayout. Questo è xml di attività:Attività con sfondo trasparente

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

e questo è manifesto:

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

In questo momento sfondo è ancora visibile, quello che sto facendo di sbagliato?

--- EDIT: ho aggiunto

android:background="#c0000000" 

a LinearLayout. Ora lo sfondo è trasparente come volevo, ma anche TextViews all'interno di RelativeLayout sono trasparenti .. come cambiarlo?

+0

possibile duplicato di [Come creare attività trasparenti in Android?] (Http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android) – g00dy

+0

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

+0

Controllare il codice nel collegamento che funziona per me. http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android/38589105#38589105 –

risposta

1

Dopo aver impostato la trasparenza LinearLayout, provare a impostare la trasparenza figlio sul valore desiderato. Ciò dovrebbe renderli con trasparenza diversa rispetto a LinearLayout. Provalo.

7

tenta di impostare

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

nella vostra attività.

Si può anche provare a fare questo in uno stile:

<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 ° approccio non funziona al mio fianco, 2 ° dà piena trasparenza sullo sfondo + TextViews all'interno di RelativeLayout sono semitrasparente, che non è idonea – Mariusz

5

Aggiungere il seguente stile Nel file res/values/styles.xml (., Se non si dispone di uno, crearla) Ecco un file completo:

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

(il valore @color/transparent è il valore del colore #00000000 che ho messo in res/values/color.xml file. le versioni successive di Android definiscono un colore trasparente per voi, quindi con quelle versioni è possibile utilizzare @android:color/transparent direttamente nel st yle e saltare il passaggio color.xml (osservino i android: nella definizione))

quindi applicare lo stile alla vostra attività, ad esempio:

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

Tratto da here.

5

Crea stile

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

questo è manifesta:

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

ha funzionato bene - testato su Android 5.0.1 –

+0

non ha funzionato a partire da questa data –

3

ho aggiunto android: background = "# c0000000" per LinearLayout. Ora lo sfondo è trasparente come volevo, ma anche le TextView in RelativeLayout sono anche trasparenti .. come cambiarlo?

Aggiungi uno sfondo solido al tuo elemento RelativeLayout. In questo modo lo RelativeLayout avrà uno sfondo uniforme e solo i margini saranno trasparenti.