Я пытался использовать функцию
SwingFXUtils.fromFXImage
который вызывает исключение NoClassFoundError. Как я могу сохранить изображение на мобильном телефоне Gluon?
Я пытался использовать функцию
SwingFXUtils.fromFXImage
который вызывает исключение NoClassFoundError. Как я могу сохранить изображение на мобильном телефоне Gluon?
SwingFXUtils
и никакие классы, связанные с Swing, не поддерживаются на Android.
Судя по вашим комментариям, вы используете Charm Down PicturesService
для получения изображения с камеры и отображения его на элементе управления ImageView
:
Services.get(PicturesService.class).ifPresent(service ->
service.takePhoto(false).ifPresent(imageView::setImage));
И теперь вы хотите сохранить это изображение в личном/общедоступном хранилище на вашем устройстве.
Если вы проверите API для takePhoto
у него есть аргумент savePhoto
, который вы можете использовать для сохранения изображения:
// take photo and save picture
Services.get(PicturesService.class).ifPresent(service ->
service.takePhoto(true).ifPresent(imageView::setImage));
Теперь, если у вас есть посмотрите как это реализовано, вы найдете свою картинку под внешний накопитель для картинок:
File photo = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "IMG_"+ timeStamp + ".jpg");
Вы можете легко получить доступ к этой папке под /sdcard/Pictures
.
Также вы можете использовать StorageService
и getPublicStorage("Pictures")
, и, просматривая каталог, вы можете получить последний добавленный файл:
File picturesDir = Services.get(StorageService.class)
.flatMap(s -> s.getPublicStorage("Pictures"))
.orElseThrow(() -> new RuntimeException("Error retrieving public storage"));
for (File pic : picturesDir.listFiles()) {
System.out.println("file " + pic.getName());
}
./gradlew clean install
в корневом проекте Charm Down, чтобы установить его в свой локальный репозиторий. Для тестирования вы можете использовать mavenLocal()
в репозиториях и использовать версию моментального снимка для плагинов: downConfig { version 3.3.0-SNAPSHOT ... }
. Это должно работать на всех платформах
- person José Pereda; 17.03.2017