我该如何去除对话框周围的"shadowBox"效果,使背景不再变淡?
我知道我可以创建自定义视图,但假设我想保持简单。我有一个仅包含TextView和2个按钮的对话框xml布局,并且我只想停止这一个对话框的淡化效果。
我知道我可以创建自定义视图,但假设我想保持简单。我有一个仅包含TextView和2个按钮的对话框xml布局,并且我只想停止这一个对话框的淡化效果。
尝试:
dialog.getWindow().clearFlags(LayoutParams.FLAG_DIM_BEHIND);
values
文件夹中创建style.xml
,并添加以下内容:<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="progress_dialog">
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:background">#00ffffff</item>
</style>
只需简单地使用:
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
这里提供一个样例类:
public void showDialog () {
Dialog dialog = new Dialog(this);
Window window = dialog.getWindow();
window.setBackgroundDrawableResource(android.R.color.transparent);
window.requestFeature(window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.sample);
ImageView imggameover, imgplayagain;
imggameover = (ImageView) dialog.findViewById(R.id.gameover);
imgplayagain = (ImageView) dialog.findViewById(R.id.playagain);
imgplayagain.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(getApplicationContext(), random.class));
onStop();
finish();
}
});
dialog.show();
}
对话框的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gameoverlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
>
<ImageView
android:id="@+id/gameover"
android:layout_width="225dip"
android:layout_height="160dip"
android:background="@drawable/gameover"
></ImageView>
<ImageView
android:id="@+id/playagain"
android:layout_width="160dip"
android:layout_height="wrap_content"
android:layout_marginLeft="100dip"
android:layout_marginTop="100dip"
android:background="@drawable/playagain"
></ImageView>
</RelativeLayout>
只是让你知道,通过在主题中编写以下内容,也可以更改暗淡程度:
<item name="android:backgroundDimAmount">0.5</item>