Flutter Создание изображения Image.file () в ImageProvider () для масштабируемых фотографий - PullRequest
0 голосов
/ 09 января 2020

Я создал приложение, которое загружает кучу информации для автономного использования, большая часть которой - фотографии. В приложении я хотел бы использовать виджет, который позволяет мне иметь эффект панорамирования / масштабирования, но те, которые я обнаружил, не очень хорошо работают с Image.file () и вместо этого используют ImageProviders.

Например, Photo_View принимает только изображения AssetImage и NetworkImage, которые оба наследуют от ImageProvider, а Image.file () наследует от Diagnosticable. Все пакеты, которые я видел, работают в основном одинаково.

Итак, мой вопрос - как преобразовать данные Image.file () в формат ImageProvider.

1 Ответ

1 голос
/ 09 января 2020

Вместо Image.file() используйте FileImage(), тип ImageProvider.

Из Do c:

Декодирует данный объект File как изображение, связывая его с заданным масштабом.

См. также:

Image.file для краткого изложения виджета Image, поддерживаемого FileImage.

Я думаю, вы также можете использовать ExactAssetImage с путем к файлу изображения (например: image.path), но он должен быть в AssetBundle. Вот что c говорит об этом:

ExactAssetImage class

Извлекает изображение из AssetBundle, связывая его с заданным масштабом.

Эта реализация требует явного окончательного значения assetName и масштаба при построении и игнорирует соотношение пикселей и размера устройства в конфигурации, переданной в разрешение. Для варианта с поддержкой разрешения, который использует конфигурацию для выбора подходящего изображения на основе соотношения пикселей и размера устройства, см. AssetImage.

Подробнее .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...