Android: диалоговое окно без тени вокруг него - PullRequest
13 голосов
/ 21 января 2011

Как убрать этот эффект "shadowBox" вокруг диалогового окна, которое затеняет фон?

Я знаю, что могу создавать как полностью настраиваемый вид, но, скажем, я хочу сделать его простым. У меня есть XML-макет для диалога только с textView и 2 кнопками, и я хочу остановить затухание только для этого одного диалога.

Ответы [ 5 ]

37 голосов
/ 21 августа 2011

Попробуйте:

dialog.getWindow().clearFlags(LayoutParams.FLAG_DIM_BEHIND);
7 голосов
/ 21 января 2011

создайте style.xml внутри values и поместите такие вещи:

<?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>

И, наконец, добавьте этот стиль в диалоговое окно.

5 голосов
/ 06 сентября 2015

Просто используйте

 dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
2 голосов
/ 21 января 2011

здесь приведем образец класса

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>
0 голосов
/ 03 апреля 2018

Просто вы знаете, что также можно изменить тусклое количество, написав это в вашей теме:

<item name="android:backgroundDimAmount">0.5</item>
...