为什么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()...... 为我的作品...