为什么android:FLAG_BLUR_BEHIND在我的新活动中创建渐变背景而不是模糊窗口?

问题描述:

我有两个活动。一个应该是在另一个之前模糊。为什么android:FLAG_BLUR_BEHIND在我的新活动中创建渐变背景而不是模糊窗口?

背景活动有几个ImageViews,它们被设置为跨越大部分屏幕和10dip高度的薄渐变。当我开始第二个活动时,它将背景设置为占据整个窗口空间的渐变,即对于高度和宽度都显示为fill_parent'd。如果我将ImageView注释掉,它会模糊并看起来像预期的那样。

有什么想法?

这是模糊的代码。

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.WindowManager; 
import android.view.View.OnClickListener; 

public class TransluscentBlurSummaryB extends Activity { 
@Override 
    protected void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 

     getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, 
       WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 
     getWindow().getAttributes().dimAmount = 0.5f; 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND, 
      WindowManager.LayoutParams.FLAG_DIM_BEHIND); 

     setContentView(R.layout.sheetbdetails); 

     OnClickListener clickListener = new OnClickListener() { 
      public void onClick(View v) { 
      TransluscentBlurSummaryB.this.finish(); 
      } 
     }; 

     findViewById(R.id.sheetbdetailstable).setOnClickListener(clickListener); 

    } 
} 

这里是与ImageView渐变的布局。

<?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:id="@+id/summarysparent" > 
    <!-- view1 goes on top --> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/view2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true"> 
    <Button android:layout_height="wrap_content" 
     android:id="@+id/ButtonBack" 
     android:layout_width="wrap_content" 
     android:text="Back" 
     android:width="100dp"></Button> 
    <Button android:layout_height="wrap_content" 
     android:id="@+id/ButtonNext" 
     android:layout_width="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="Start Over" 
     android:width="100dp"></Button> 
</RelativeLayout> 

    <TextView 
     android:id="@+id/view1" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_width="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:textSize="10pt" android:text="Summary"/> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/summaryscrollview" 
    android:layout_below="@+id/view1" 
    android:layout_above="@+id/view2"> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/summarydetails" > 

     <!-- view2 goes on the bottom --> 

     <TextView android:id="@+id/textview2" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/view1" 
     android:layout_centerHorizontal="true" 
     android:text="Recommended Child Support Order" 
     android:layout_marginTop="10dip" /> 

     <ImageView 
    android:id="@+id/horizontalLine1" 
    android:layout_width="fill_parent" 
    android:layout_marginLeft="5dip" 
    android:layout_marginRight="5dip" 
    android:layout_height="10dip" 
    android:src="@drawable/black_white_gradient" 
    android:layout_below="@+id/textview2" 
    android:layout_marginTop="10dip" 
    /> 

     <TextView android:id="@+id/textview3" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/horizontalLine1" 
     android:layout_centerHorizontal="true" 
     android:text="You" 
     android:layout_marginTop="10dip" /> 

     <TextView android:id="@+id/textview10" 
     android:layout_height="wrap_content" 
     android:layout_width="150dp" 
     android:layout_below="@+id/textview3" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="10dip" 
     android:gravity="center_horizontal" /> 

     <ImageView 
    android:id="@+id/horizontalLine2" 
    android:layout_width="fill_parent" 
    android:layout_marginLeft="5dip" 
    android:layout_marginRight="5dip" 
    android:layout_height="10dip" 
    android:src="@drawable/black_white_gradient" 
    android:layout_below="@+id/textview10" 
    android:layout_marginTop="10dip" /> 

     <TextView android:id="@+id/textview4" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/horizontalLine2" 
     android:layout_centerHorizontal="true" 
     android:text="Other Parent" 
     android:layout_marginTop="10dip" /> 

     <TextView android:id="@+id/textview11" 
     android:layout_height="wrap_content" 
     android:layout_width="150dp" 
     android:layout_below="@+id/textview4" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="10dip" 
     android:text="$536.18" 
     android:gravity="center_horizontal" /> 

     <ImageView 
    android:id="@+id/horizontalLine3" 
    android:layout_width="fill_parent" 
    android:layout_marginLeft="5dip" 
    android:layout_marginRight="5dip" 
    android:layout_height="10dip" 
    android:src="@drawable/black_white_gradient" 
    android:layout_below="@+id/textview11" 
    android:layout_marginTop="10dip" /> 

     <TextView android:id="@+id/textview5" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/horizontalLine3" 
     android:layout_centerHorizontal="true" 
     android:text="Calculation Details" 
     android:layout_marginTop="15dip" /> 

     <ImageView android:id="@+id/infoButton" 
     android:src="@drawable/ic_menu_info_details" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/horizontalLine3" 
     android:layout_toRightOf="@+id/textview5" 
     android:clickable="true" 
     /> 

     <ImageView 
    android:id="@+id/horizontalLine4" 
    android:layout_width="fill_parent" 
    android:layout_marginLeft="5dip" 
    android:layout_marginRight="5dip" 
    android:layout_height="10dip" 
    android:src="@drawable/black_white_gradient" 
    android:layout_below="@+id/textview5" 
    android:layout_marginTop="18dip" /> 

    </RelativeLayout> 
</ScrollView> 
</RelativeLayout> 

渐变可绘制是这样的。

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <gradient 
    android:startColor="#FFFFFF" android:centerColor="#000000" android:endColor="#FFFFFF" 
      android:angle="270"/> 
    <padding android:left="7dp" android:top="7dp" 
      android:right="7dp" android:bottom="7dp" /> 
    <corners android:radius="8dp" /> 
</shape> 

而这里是从顶部进行模糊处理的活动的布局。

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/sheetbdetails" 
android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clickable="true" > 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scrollbars="vertical" 
    android:shrinkColumns="0" 
    android:id="@+id/sheetbdetailstable" > 

    <TableRow> 
     <TextView 

      android:padding="3dip" /> 
     <TextView 
      android:text="You" 
      android:padding="3dip" /> 
     <TextView 
      android:text="@string/otherparent" 
      android:padding="3dip" /> 
      <TextView 
      android:text="Combined" 
      android:padding="3dip" /> 
    </TableRow> 

</TableLayout> 
</ScrollView> 

透明窗口的主题是使用@ style/Theme.Transparent的apidemos中的styles.xml。

我认为,当你想给一个以上的标志使用 addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND),而不是setFlags()...... 为我的作品...