Hi Guys, Welcome to Proto Coders Point. In this Android tutorial, we will learn how to create a custom dialog box with a floating image app logo.
Sometimes a simple & default android dialop popup is not suitable with our app UI, In that case we need to create a custom alert dialog layout design to show as a popup to a user.
Example: Check the below image, this is what we will achieve at the end.
A android custom popup dialop example with a floating imageview sightly out of dialog as shown in below screenshot.

Video Tutorial
Below are steps to achieve above android alert dialog.
Step 1: create a background for custom dialog layout
Create a XML file: dialog_bg.xml in drawable folder and copy paste the below code in it.
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="5dp"
android:insetTop="5dp"
android:insetBottom="5dp"
android:insetRight="5dp"
>
<shape android:shape="rectangle">
<corners android:radius="20dp"/>
<solid android:color="@color/white"/>
<stroke android:width="5dp" android:color="#FFF"/>
</shape>
</inset>
The above code is just to give a corner radius, solid color, and stroke to custom_dialog.xml background.
Step 2: Create a vector image(cancel image) and copy a logo image in drawable
Create vector assets image Right click on drawable -> New -> Vector Assets & choose a cancel button.

We need a logo image file to show in dialog popup as a floating app logo, So just copy your app logo in drawable file.

Step 3: Creating a custom_dialog.xml layout file under layout folder
Now a main custom alert dialog layout design custom_dialog.xml, Under layout folder create a XML file custom_dialog.xml and copy below layout code and paste in it.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:background="@drawable/dialog_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:orientation="vertical"
android:layout_marginRight="20dp"
android:layout_marginTop="30dp">
<ImageView
android:id="@+id/cancel_button"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/ic_cancel"
android:layout_centerHorizontal="true"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:layout_gravity="right"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="WELCOME TO PROTO CODERS POINT"
android:textColor="#000"
android:textStyle="bold|italic"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Please do like and Subscribe Us"
android:textColor="#000"
android:textStyle="bold|italic"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
android:gravity="center"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_centerHorizontal="true"
android:background="@drawable/logo"
/>
</RelativeLayout>
This code defines different views inside a custom dialog layout, it has 2 imageview, one for App logo and another for cancel vector image and 2 TextView and a ‘OK’ button.

Step 4: activity_main.xml add a button
In activity_main.xml file will add a button, when a user clicks on that button will show android dialog.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Dialog"
android:id="@+id/showdialog"
/>
</LinearLayout>
Step 5: MainActivity.xml on click show alert dialog in android
On Button click create a custom dialog in android and show it to the user.
MainActivity.java
package example.on.dialog_popup;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.media.Image;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
Button showdialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//find the view
showdialog = (Button)findViewById(R.id.showdialog);
// when clicked
showdialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ImageView cancel;
//will create a view of our custom dialog layout
View alertCustomdialog = LayoutInflater.from(MainActivity.this).inflate(R.layout.custom_dialog,null);
//initialize alert builder.
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
//set our custom alert dialog to tha alertdialog builder
alert.setView(alertCustomdialog);
cancel = (ImageView)alertCustomdialog.findViewById(R.id.cancel_button);
final AlertDialog dialog = alert.create();
//this line removed app bar from dialog and make it transperent and you see the image is like floating outside dialog box.
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
//finally show the dialog box in android all
dialog.show();
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
}
});
}
}
Recommended Android and Flutter Posts
Android Alert dialog Box with list of options in it.





