method 2 : Image chooser dialog for entire application
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>