1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.widget.ImageView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import java.io.File; public class ImagePickerClass { private static int RESULT_LOAD_IMAGE = 786; private ImagePickerMethod imagePickerMethod; private Activity activity; public ImagePickerClass(ImagePickerMethod imagePickerMethod, Activity activity) { this.imagePickerMethod = imagePickerMethod; this.activity = activity; } public void openPicker() { Intent i = new Intent( Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); activity.startActivityForResult(i, RESULT_LOAD_IMAGE); } public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RESULT_LOAD_IMAGE && resultCode == Activity.RESULT_OK && null != data) { Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = activity.getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); imagePickerMethod.fileUrl(new File(picturePath)); } } public interface ImagePickerMethod { void fileUrl(File file); } } |
implement ImagePickerClass.ImagePickerMethod in your activity or fragment
1 2 3 4 |
@Override public void fileUrl(File file) { chatStatus.setText("Please wait file uploading..."); } |
initlize object
1 2 |
private ImagePickerClass imagePickerClass; imagePickerClass = new ImagePickerClass(this, this); |
call
1 |
imagePickerClass.openPicker(); |
in onActivityResult
1 2 3 4 5 |
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (imagePickerClass != null) imagePickerClass.onActivityResult(requestCode, resultCode, data); } |