画面の上部(4)に、別のアクティビティ(1)よりも半透明のアクティビティ(2)を配置したいと思います。
これらのテーマをアクティビティ番号2に割り当ててみました。
<style name="Theme.CustomDialog" parent="Android:style/Theme.Dialog">
<item name="Android:windowBackground">@Android:color/black</item>
</style>
<style name="CustomTheme">
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:background">@Android:color/transparent</item>
<item name="Android:windowIsFloating">true</item>
<item name="Android:windowNoTitle">true</item>
</style>
しかし、結果は常に3です。
CustomTheme
に<item name="Android:windowIsFloating">false</item>
を設定すると、結果は2になります。
誰かが私に4を得る方法を教えてもらえますか?ありがとう!
PDATE:これは私のアクティビティ2のレイアウトです:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical" Android:background="#0000">
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" Android:background="#FFFFFF">
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Menu" Android:layout_centerHorizontal="true"/>
</RelativeLayout>
</RelativeLayout>
最後に、このテーマは画像番号4のような結果を得るために機能しました。
<style name="Theme.CustomTranslucent" parent="Android:style/Theme.Translucent">
<item name="Android:backgroundDimEnabled">true</item>
<item name="Android:backgroundDimAmount">0.5</item>
<item name="Android:windowAnimationStyle">@Android:style/Animation.Dialog</item>
<item name="Android:background">@Android:color/transparent</item>
</style>
私のアクティビティ2のレイアウトでは、set Android:background="@Android:color/transparent"
またはそれを機能させるために値をまったく設定しない。
MikeIsraelとVeerの助けに感謝します。
私は他の解決策を読みましたが、ここに私の解決策があります:
style.xml
<resources>
<style name="mytransparent.windowNoTitle" parent="Android:Theme.Holo.Light">
<item name="Android:windowNoTitle">true</item>
<item name="Android:background">@Android:color/transparent</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>
<style name="mytransparent.windowTitle" parent="Android:Theme.Holo.Light">
<item name="Android:background">@Android:color/transparent</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>
AndroidManifest.xml
<activity
Android:name=".LoginActivity"
Android:theme="@style/mytransparent.windowTitle"
Android:configChanges="orientation"
Android:label="@string/title_activity_login"
Android:screenOrientation="portrait" ></activity>
AppCompatActivity
を使用する場合は、親として_Theme.AppCompat
_を使用する必要があります。そうしないと、アプリケーションがハングしたり、エラー(Java.lang.RuntimeException: Unable to start activity ComponentInfo ... Caused by: Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.)
)でクラッシュしたりする可能性があります。
これをあなたのスタイルに入れてください:
_<style name="MyTheme" parent="AppTheme.NoActionBar">
<item name="Android:windowIsTranslucent">true</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:backgroundDimEnabled">false</item>
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowActionBar">false</item>
<item name="Android:windowFullscreen">false</item>
<item name="Android:windowContentOverlay">@null</item>
</style>
_
次に、MyThemeをアクティビティマニフェストに追加します:_<activity Android:name=".MyActivity" Android:theme="@style/MyTheme">
_
まず、透明なテーマのアクティビティを行います。
<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>
マニフェストでのアクティビティに透明なテーマを割り当てます。
<activity Android:name=".MyActivity"
Android:label="@string/app_name"
Android:theme="@style/Theme.Transparent"/>
要件に従ってレイアウトを作成し、アクティビティのコンテンツビューをそのレイアウトに設定します。
次のレイアウトを試してください。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@Android:color/transparent">
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#FFFFFF"
Android:layout_alignParentTop="true">
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Menu" Android:layout_centerHorizontal="true"/>
</RelativeLayout>
</RelativeLayout>
お役に立てば幸いです。
Xmlを介してそれを行う方法がわかりませんが、これはプログラムで機能するはずです。これをアクティビティに追加してみてください(おそらくアクティビティのメインビューに)。
//grab layout params
WindowManager.LayoutParams lp = this.getWindow().getAttributes();
//remove the dim effect
lp.dimAmount = 0;