0

I have a DialogFragment class with following code:

public class LeavingAppDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    LayoutInflater inflater = getActivity().getLayoutInflater();
    View v = inflater.inflate(R.layout.leaving_app_dialog, null);
    builder.setView(v);

    Typeface segoeuib = Typeface.createFromAsset(getActivity().getApplicationContext().getAssets(), "fonts/segoeuib.ttf");
    TextView text = (TextView) v.findViewById(R.id.msg_dialog);
    text.setTypeface(segoeuib);

    Dialog dialog = builder.create();



    return dialog;
    }
}

This dialog uses a custom layout, here is its code:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00000000">

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true">

    <ImageView
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:id="@+id/imageView"
        android:src="@drawable/box_1_fit"
        android:scaleType="centerInside"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:background="#00000000" />

    <FrameLayout
        android:layout_width="275dp"
        android:layout_height="150dp"
        android:id="@+id/frameLayout"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="LEAVING THIS APP?"
            android:id="@+id/msg_dialog"
            android:textSize="35dp"
            android:layout_gravity="center_horizontal|top"
            android:gravity="center_horizontal|top"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp" />
    </FrameLayout>

    <Button
        android:layout_width="100dp"
        android:layout_height="37dp"
        android:id="@+id/btn_cancel"
        android:background="@drawable/cancel_button_fit"
        android:singleLine="false"
        android:layout_alignRight="@+id/frameLayout"
        android:layout_alignEnd="@+id/frameLayout"
        android:layout_marginTop="75dp"
        android:layout_below="@+id/frameLayout"
        android:layout_marginRight="25dp"
        android:onClick="ExitApp"/>

    <Button
        android:layout_width="100dp"
        android:layout_height="37dp"
        android:id="@+id/btn_accept"
            android:background="@drawable/accept_button_fit"
            android:layout_below="@+id/frameLayout"
            android:layout_alignLeft="@+id/frameLayout"
            android:layout_alignStart="@+id/frameLayout"
            android:layout_marginTop="75dp"
            android:layout_marginLeft="25dp"
            android:onClick="ExitApp"/>
    </RelativeLayout>
</RelativeLayout>

The problem is on the screenshot. I need to get rid of these white borders. I've tried to set background color to transparent through layout editor and through code. I've tried to set transparent backgound color to all the layouts and to the image itself, but it all had no effect. My source image is a png file and it really has transparent background, so the problem is not in the source image.

applied some blur for privacy

Sam Stone
  • 477
  • 2
  • 10
  • 33
  • 5
    Have a look at this question: http://stackoverflow.com/questions/10795078/dialog-with-transparent-background-in-android – Rehan May 23 '16 at 13:18

3 Answers3

0

Set Background Transparent:

Like this: mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

Sackurise
  • 2,804
  • 1
  • 18
  • 18
  • I've tried this way, it did not work. It returns a null refference from getWindow() anywhere I try to invoke it. – Sam Stone May 23 '16 at 13:28
0

Try this Custom Alert Dialog Class:

class CustomAlertDialog extends AlertDialog {
    CustomAlertDialog(Context context) {
        super(context);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        setContentView(R.layout.view_custom_alert_dialog);

        RMTextView txtTitle = (RMTextView) findViewById(R.id.txt_alert_title);

        txtTitle.setText("Title");
    }
}
Sackurise
  • 2,804
  • 1
  • 18
  • 18
0

try this way.

mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
// mDialog.getWindow().setBackgroundDrawableResource("#0069ad");
mDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
Hardik Parmar
  • 712
  • 2
  • 13
  • 28