method 2 : Image chooser dialog for entire application

custom dialog

LokeshImageChooser:

public class LokeshImageChooser {

private Context mContext;

public CustomClickListener listener;

private Dialog imageChooserDialog;

private ImageView cameraImage;

private ImageView galleryImage;

private TextView cancelTv;

public interface CustomClickListener {

void onClick(View view);

void onGalleryClick();

void onCameraClick();

}

public LokeshImageChooser(Context mContext) {

this.listener = null;

this.imageChooserDialog = null;

this.mContext = mContext;

}

public void setCustomObjectListener(CustomClickListener listener,Dialog imageChooserDialog) {

this.listener = listener;

this.imageChooserDialog = imageChooserDialog;

}

public void showDialog(Dialog emptyDialog) {

this.imageChooserDialog = emptyDialog;

LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);

View imagesLayout = inflater.inflate(R.layout.activity_choose_image_layout,null);

imageChooserDialog.setContentView(imagesLayout);

imageChooserDialog.setTitle("Choose Image");

imageChooserDialog.show();

cancelTv = (TextView) imagesLayout.findViewById(R.id.activity_choose_image_cancel_tv);

cancelTv.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

listener.onClick(view);

cancelTv.setOnTouchListener(null);

return true;

}

});

cameraImage = (ImageView) imagesLayout.findViewById(R.id.activity_choose_image_layout_camera_iv);

cameraImage.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

listener.onCameraClick();

cameraImage.setOnTouchListener(null);

return true;

}

});

galleryImage = (ImageView) imagesLayout.findViewById(R.id.activity_choose_image_layout_gallery_iv);

galleryImage.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

listener.onGalleryClick();

galleryImage.setOnTouchListener(null);

return true;

}

});

}

}

ChooseImageActivity:

public class ChooseImageActivity extends AppCompatActivity {

private Dialog dialog;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_choose_image);

dialog = new Dialog(this);

}

public void showDialog(View view) {

LokeshImageChooser lokeshImageChooser = new LokeshImageChooser(this);

lokeshImageChooser.showDialog(dialog);

lokeshImageChooser.setCustomObjectListener(new LokeshImageChooser.CustomClickListener() {

@Override

public void onClick(View view) {

Toast.makeText(ChooseImageActivity.this, "hello world!", Toast.LENGTH_SHORT).show();

dialog.dismiss();

}

@Override

public void onGalleryClick() {

Toast.makeText(ChooseImageActivity.this, "Gallery clicked", Toast.LENGTH_SHORT).show();

dialog.dismiss();

}

@Override

public void onCameraClick() {

Toast.makeText(ChooseImageActivity.this, "Camera clicked", Toast.LENGTH_SHORT).show();

dialog.dismiss();

}

},dialog);

}

}

activity_choose_image.xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_choose_image"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="sciens.com.toolbar.ChooseImageActivity">

<Button

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Show dialog "

android:onClick="showDialog"/>

</RelativeLayout>

activity_choose_image_layout:

<?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="wrap_content">

<TextView

android:id="@+id/activity_choose_image_select_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Select image"

android:textStyle="bold"

android:layout_marginTop="10dp"

android:layout_marginLeft="10dp"

android:textColor="#000000"

android:textSize="16dp"/>

<RelativeLayout

android:layout_below="@+id/activity_choose_image_select_tv"

android:id="@+id/activity_choose_image_l1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="10dp"

android:gravity="center_horizontal">

<ImageView

android:id="@+id/activity_choose_image_layout_camera_iv"

android:layout_width="75dp"

android:layout_height="75dp"

android:layout_marginRight="30dp"

android:src="@drawable/camera_icon"/>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Camera"

android:textColor="@color/colorPrimary"

android:textSize="12dp"

android:layout_below="@+id/activity_choose_image_layout_camera_iv"

android:layout_marginLeft="15dp"

android:layout_marginTop="5dp"/>

<ImageView

android:layout_toRightOf="@+id/activity_choose_image_layout_camera_iv"

android:id="@+id/activity_choose_image_layout_gallery_iv"

android:layout_marginLeft="30dp"

android:layout_width="75dp"

android:layout_height="75dp"

android:src="@drawable/gallery"/>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Gallery"

android:textSize="12dp"

android:textColor="@color/colorPrimary"

android:layout_alignLeft="@+id/activity_choose_image_layout_gallery_iv"

android:layout_below="@+id/activity_choose_image_layout_camera_iv"

android:layout_marginLeft="20dp"

android:layout_marginTop="5dp"/>

</RelativeLayout>

<TextView

android:layout_below="@+id/activity_choose_image_l1"

android:layout_alignParentRight="true"

android:layout_marginRight="40dp"

android:layout_marginBottom="10dp"

android:layout_marginTop="15dp"

android:id="@+id/activity_choose_image_cancel_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Cancel"

android:textColor="@color/colorPrimaryDark"

android:textStyle="bold"/>

</RelativeLayout>