Активность с прозрачным фоном

что я хочу достичь, это активность с диалоговой прозрачностью с 100% видимостью содержимого RelativeLayout. Это активность xml:

<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 также прозрачны.. как его изменить?

Ответ 1

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

Ответ 2

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

    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>

Ответ 3

Добавьте следующий стиль В ваш 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 непосредственно в стиле и пропустите шаг color.xml(обратите внимание на дополнительное android: в определении))

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

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

Взято из здесь.

Ответ 4

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

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

Ответ 5

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

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