Библиотека позволяет легко добавить изображения в ваше приложение с камеры или из галереи.
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.sequenia.Pikcha:pikcha:Y.Y.Y'
implementation 'io.github.ParkSangGwon:tedpermission-normal:X.X.X'
}
Обработка разрешений для Android 6.0 и выше реализована.
photos = new Photos(Fragment)
или
photos = new Photos(Activity)
Необходимо переопределить метод onActivityResult
и вызвать в нем метод onResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
photos.onResult(requestCode, resultCode, data);
}
photos.takePhotoFromCamera(context);
photos.selectedPhotoFromGallery(context);
photos.selectMethodOfAddingPhoto(context)
Для получения результата необходимо реализовать один из двух слушателей: PhotoResultListener
, PhotoDifferentResultsListener
. При реализации слушателей необходимо добавить следующий код в метод startIntentForPhoto
для activity
или fragment
.
@Override
public void startIntentForPhoto(Intent intent, int requestCode) {
startActivityForResult(intent, requestCode);
}
Слушатель PhotoResultListener
возвращает результат без разделения на источник данных. Слушатель PhotoDifferentResultsListener
возвращает результат отдельно для камеры и галереи.
В методы слушателей возвращаются Uri
на файл. Обратите внимание, что начиная с 29 android sdk файлы из галереи недоступны по абсолютному пути. Для доступности файла по абсолютному пути необходимо скопировать файл в директорию приложения. Рекомендуется отказаться от данного решения! Поэтому для загрузки файлов на сервер стоит отказаться от использования File
, вместо этого использовать byte[]
, считанный напрямую из Uri
. Так же для отображения изображений по Uri
рекомендуется использовать библиотеку glide. Она позволяет избежать ошибок с ориентацией изображения.
Для некоторых устройств изображение с камеры возвращается не сразу после подтверждения. Для таких случаев реализуется слушатель PhotoWaitListener
, метод которого вызывается при старте и завершении ожидания изображения с камеры.
Для получения обработанной ошибки необходимо реализовать слушатель PhotoErrorListener
.
Коды ошибок
FILE_PATH_NOT_FOUND
- Не указан путь к файлуNO_CAMERA_ON_THE_DEVICE
- На устройстве не удалось найти камеруCAN_NOT_CREATE_FILE
- Не удалось создать файлINTENT_NOT_SET
- Не задан intent для обработки результатаPERMISSION_DENIED
- Отказано в выдаче разрешенийCONTEXT_NOT_FOUND
- Потерян контекстFILE_NOT_FOUND
- По указанному пути не найден файлEXCEPTION
- Обработанное исключение