2013-07-09 4 views
12

То, что я хочу достичь, - это деятельность с диалоговой прозрачностью со 100% видимостью содержимого RelativeLayout. Это XML Activity в:Деятельность с прозрачным фоном

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

и это проявляется:

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

Сейчас фон по-прежнему видно, что я делаю неправильно?

--- EDIT: Я добавил

android:background="#c0000000" 

к LinearLayout. Теперь фон прозрачен, как я хотел, но также TextViews внутри RelativeLayout также прозрачны .. как его изменить?

+0

Возможный дубликат [Как создать прозрачную активность в Android?] (Http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android) – g00dy

+0

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

+0

Проверить код в ссылке, которая работает для меня. http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android/38589105#38589105 –

ответ

1

После настройки прозрачности LinearLayout попробуйте установить его прозрачность для детей в нужное вам значение. Это должно сделать их прозрачными, чем LinearLayout. Попробуй.

7

Попробуйте установить

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

в вашей деятельности.

Вы также можете попробовать сделать это в стиле:

<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-й подход не работает на моей стороне, второй дает полную прозрачность фона + TextViews внутри RelativeLayout полупрозрачный, который не подходит – Mariusz

5

Добавить следующий стиль В файле 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">@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 файл. в более поздних версиях Android определить прозрачный цвет для вас, так и с теми версиями вы можете использовать @android:color/transparent непосредственно в ст YLE и пропустить шаг color.xml (обратите внимание на дополнительную android: в определении))

Затем применить стиль к Вашей деятельности, например:

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

Взятые из here.

5

Создать стиль

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

это манифеста:

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

работал хорошо протестирован на Android 5.0.1 –

+0

не работал с этой даты –

3

Я добавил андроида: фон = "# C0000000" в LinearLayout. Теперь фон прозрачен, как я хотел, но также TextViews внутри RelativeLayout также прозрачны .. как его изменить?

Добавить сплошной фон в ваш RelativeLayout элемент. Таким образом, RelativeLayout будет иметь сплошной фон, и только поля будут прозрачными.

Смежные вопросы