При выборе изображения с использованием встроенной CropimageActivity, сборщик показывает опцию для выбора файлов (любого типа) из некоторого внешнего приложения (WPS Office для моего дела). Поэтому, когда я выбираю файл PDF (скажем), onsetimageuricOfletee () не вызывает никакой ошибки. < /P>
@Override
public void onSetImageUriComplete(CropImageView cropImageView, Uri uri, Exception error) {
progressView.setVisibility(View.INVISIBLE);
if (error != null) {
Log.e(LOG_TAG, "Failed to load image for cropping", error);
AndroidUtils.showToast("Unable to upload", this);
finish();
}
}
< /code>
Ошибка не является нулевой для таких случаев. Итак, в пользовательском интерфейсе ничего не появляется, и у меня нет никакого способа узнать, является ли это изображением или нет. Модели (один плюс X для моего случая), URI не обязательно содержит расширение. < /p>
public static boolean isImage(File file) {
if (file == null || !file.exists()) {
return false;
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file.getPath(), options);
return options.outWidth != -1 && options.outHeight != -1;
}
< /code>
Но, для одного плюс x, он снова возвращает false. Есть ли другой способ (который не интенсивный ресурс) проверить, является ли полученным файлом изображением или нет?
Подробнее здесь: https://stackoverflow.com/questions/422 ... age-or-not