Android FrameLayout前景setAlpha无法正常工作

时间:2014-10-06 13:11:36

标签: android

我找到了这个最优秀的解决方案来解决我在这里要解决的问题:

Blur or dim background when Android PopupWindow active

但是,我无法通过设置Alpha来使父视图变暗。我正在使用矩形形状,因为解决方案建议Drawable是GradientDrawable。这是我正在使用的代码:

                @Override
                public void onViewPhoto(PostObject item) {
                    rootView.getForeground().setAlpha(220);
                    rootView.invalidate();
                    PhotoPopup pp = new PhotoPopup(getActivity(), rootView, item.getObject_Id());
                    pp.show();
                    rootView.getForeground().setAlpha(0);
                    rootView.invalidate();
                }

上面的代码位于将托管弹出窗口的父片段中。它是通过自定义回调调用的。当用户单击listview项目中的照片时,调用由ArrayAdapter派生的适配器进行。

我在KitKat(华硕Memo Pad)和JellyBean(三星Galaxy Tab 2)上试过这个 有什么想法吗?

完整性:这是布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/streamList_rootFrame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:foreground="@drawable/shape_dim_window" >

    <ListView
        android:id="@+id/streamList_listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>

</FrameLayout>

形状本身:

<shape
     xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <solid android:color="#000000" />
</shape>

1 个答案:

答案 0 :(得分:0)

您可以DIALOG使用android:theme="@android:style/Theme.Dialog"来执行此操作。 创建活动并在AndroidManifest.xml中将活动定义为:

<activity android:name=".activity.YourActivity"
android:label="@string/your_activity_label"
android:theme="@android:style/Theme.Dialog">

它会创建一个popup,你的背景会变暗。