👨‍💻
Flutter
  • 👨‍💻Flutter lessons
    • 🎨Flutter ui
      • 🚵‍♂️Travel app
        • 📱1. Lesson
        • 📱2.Lesson
      • 📚Books store
      • 🧑‍⚕️Doctor app
      • 🚖Taxi app
    • 🐦Основы Flutter
      • Page 1
      • Page 2
      • 🧑‍🏫Урок 1: Основные виджеты Flutter
        • Page
        • 🧩Container()
        • 🧩AppBar()
        • 🧩Text()
        • 🧩Icon()
        • 🧩Column()
        • 🧩Row()
        • 🧩TextButton()
        • 🧩ElevatedButton()
      • 🧑‍🏫Урок 2: Создаем UI
      • 🧑‍🏫Урок 3: Создаем UI
      • 🧑‍🏫Урок 4: Создаем UI
    • 🧩Основы dart
      • 🧑‍🏫01. Переменные часть 1
      • 🧑‍🏫01. Переменные часть 2
      • 🧑‍🏫02. Функции
      • 🧑‍🏫03. Условные операторы
      • 🧑‍🏫04. List
      • 🧑‍🏫05. Map
      • 🧑‍🏫06. Class
      • 🧑‍🏫07. Наследование
      • 🧑‍🏫08. Абстракция
      • 🧑‍🏫09. Интерфейсы
      • 🧑‍🏫10. Инкапсуляция
      • 🧑‍🏫11. Mixin
      • 🧑‍🏫12. Асинхронное программирование
      • 🧑‍🏫13. Streams
      • 🎯Final project
        • 🥦Grocery app
        • 🏠Home
    • ⚒️State management
      • ⬛Bloc
        • 1. Введение cubit
          • 1.1 Пример
          • 1.2 Пример
          • 1.3 Пример
          • 1.4 Пример
          • 1.5 Пример
        • 2. Введение в Bloc
      • 🌊Riverpod
    • 🏠Architechture
      • Clean Architechture
      • Bloc
    • 📲Locale storage
      • 🐝Hive
        • 🐝Ui
        • 🐝Hive - локальное хранилище: Введение
        • 🐝Hive - task app: часть 1
        • 🐝Hive - task app: часть 2
        • 🐝Hive - task app: часть 3
        • 🐝Hive - task app: часть 4
        • 🐝Hive - task app: часть 5
      • 🟩Sql
    • 📡Server
      • 📡Server - Lesson01 introduction
      • 📡Server - Lesson02 get data
      • 📡Server - Lesson03 News App get data
    • 🖥️Готовый backend
      • Firebase
      • Supabase
  • 🎯Dart practise
    • 🧑‍💻Переменные
      • 🧑‍💻String
      • 🧑‍💻int
      • 🧑‍💻double
      • 🧑‍💻bool
    • 🧑‍💻Функции
      • 🧑‍💻Обычные функции
      • 🧑‍💻Порядковые параметры
      • 🧑‍💻Обязательные параметры
      • 🧑‍💻Параметры по умолчанию
      • 🧑‍💻Функции-стрелки
      • 🧑‍💻Возвращаемые функции
    • 🧑‍💻Условные операторы
      • 🧑‍💻if/else
      • 🧑‍💻switch/case
      • 🧑‍💻тернарный оператор
    • 🧑‍💻Структура данных
      • 🧑‍💻List
      • 🧑‍💻Map
      • 🧑‍💻Set
    • 🧑‍💻ООП
  • 🧩Flutter Widgets
    • 💻Все виджеты
    • 🎞️Анимации
      • 🧩AnimatedContainer
      • 🧩AnimatedOpacity
      • 🧩AnimatedAlign
      • 🧩AnimatedCrossFade
      • 🧩Hero
      • 🧩AnimatedBuilder
      • 🧩AnimatedPositioned
      • 🧩AnimatedSwitcher
    • 🏗️Манипуляция пространством
      • 🧩Padding
      • 🧩SizedBox
      • 🧩Align
      • 🧩Center
      • 🧩Expanded
      • 🧩Flexible
      • 🧩Spacer
      • 🧩Column
      • 🧩Stack
      • 🧩Row
    • ✍️Отображение текста
      • 🧩RichText
      • 🧩FittedBox
      • 🧩SelectableText
      • 🧩Text
    • 📸Отображение изображений
      • 🧩Image()
      • 🧩Image.network
      • 🧩Image.asset
      • 🧩Image.file
      • 🧩Image.memory
      • 🧩FadeInImage
      • 🧩NetworkImage
      • 🧩AssetImage
    • 📃Списки и прокрутка
      • 🧩ListView()
      • 🧩ListView.builder()
      • 🧩GridView()
      • 🧩GridView.builder()
      • 🧩PageView()
      • 🧩SingleChildScrollView
      • 🧩CustomScrollView
      • 🧩ReorderableListView
      • 🧩NestedScrollView
    • ⌨️Кнопки
      • 🧩TextButton()
      • 🧩ElevatedButton()
      • 🧩IconButton()
      • 🧩DropDownButton()
      • 🧩FloatingActionButton
      • 🧩Checkbox
      • 🧩Radio
      • 🧩Switch
      • 🧩Slider
    • 📝Формы и ввод данных
      • 🧩TextField()
      • 🧩TextFormField
      • 🧩Form
      • 🧩FormField
      • 🧩DatePicker
      • 🧩TimePicker
    • 🧑‍🏫Диалоги и всплывающие окна
      • 🧩AlertDialog
      • 🧩SimpleDialog
      • 🧩BottomSheet
      • 🧩ExpansionPanel
      • 🧩SnackBar
      • 🧩PopupMenuButton
      • 🧩Tooltip
      • 🧩Dialog
    • 🛣️Навигация
      • 🧩BottomNavigationBar()
      • 🧩Navigator
      • 🧩Drawer
      • 🧩TabBar
    • 📱Отображение на экране
      • 🧩Scaffold
      • 🧩Container()
      • 🧩AppBar()
      • 🧩Icon()
      • 🧩Stepper()
  • 🎮Flutter Flame
    • Введение в разработку игр
  • 🔬Flutter projects
  • 🧑‍🎓Homeworks for everyday
    • 🧑‍🎓0. Переменные
    • 🧑‍🎓1. Функции - 1
    • 🧑‍🎓2. Функции - 2
    • 🧑‍🎓3. Условные операторы
    • 🧑‍🎓4. List
    • 🧑‍🎓5. Map
    • 🧑‍🎓6. class
    • 🐝Hive -
    • 🐝Hive clean architecture
    • 📡HTTP
    • 📡HTTP clean architecture
    • 💾Firebase
    • 💾Firebase clean architecture
Powered by GitBook
On this page
  1. Flutter Widgets
  2. Отображение изображений

Image.file

Что такое Image.file

Image.file — это виджет в Flutter, который позволяет загружать и отображать изображения, которые находятся на файловой системе устройства, например, фотографии, которые пользователь сделал на своем телефоне или изображения, загруженные на устройство. Это похоже на то, как вы можете открыть файл на своем компьютере, чтобы увидеть изображение.

Пример использования

В этом примере мы создадим приложение, которое позволяет загружать изображение с устройства и отображать его.

import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'dart:io';

class FileImageExample extends StatefulWidget {
  @override
  _FileImageExampleState createState() => _FileImageExampleState();
}

class _FileImageExampleState extends State<FileImageExample> {
  File? _image; // Переменная для хранения загруженного изображения

  Future<void> _pickImage() async {
    final ImagePicker _picker = ImagePicker();
    final XFile? image = await _picker.pickImage(source: ImageSource.gallery);
    if (image != null) {
      setState(() {
        _image = File(image.path); // Загружаем изображение в переменную
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('File Image Example')),
      body: Center(
        child: _image == null // Проверка, есть ли изображение
            ? Text('No image selected.') // Сообщение, если изображение не выбрано
            : Image.file(
                _image!, // Отображаем загруженное изображение
                width: 300, // Ширина изображения
                height: 200, // Высота изображения
                fit: BoxFit.cover, // Как изображение будет вписываться в область
              ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _pickImage, // Выбор изображения
        tooltip: 'Pick Image',
        child: Icon(Icons.add_a_photo),
      ),
    );
  }
}

Как работает код

  1. StatefulWidget — используется, чтобы обновлять интерфейс, когда загружено новое изображение.

  2. File? _image — переменная для хранения загруженного изображения.

  3. _pickImage — функция, которая открывает галерею устройства и позволяет выбрать изображение.

  4. setState — обновляет интерфейс с новым изображением после его выбора.

  5. Image.file — загружает и отображает изображение из файловой системы.

Все настройки Image.file

  1. image (обязательный)

    • Описание: Путь к файлу изображения на устройстве. Это должен быть объект File.

    • Пример:

      image: File('path/to/image.png') // Путь к изображению
    • Применение: Это основной параметр, который указывает, откуда загружать изображение.

  2. width

    • Описание: Ширина изображения. Можно задать конкретное значение или оставить пустым для авторазмера.

    • Пример:

      width: 300 // Ширина изображения в пикселях
    • Применение: Позволяет контролировать, сколько места изображение займет на экране.

  3. height

    • Описание: Высота изображения. Аналогично ширине, можно задать конкретное значение или оставить пустым.

    • Пример:

      height: 200 // Высота изображения в пикселях
    • Применение: Помогает определить вертикальное пространство, которое изображение будет занимать.

  4. fit

    • Описание: Определяет, как изображение будет вписываться в область, заданную параметрами ширины и высоты. Может принимать значения, такие как BoxFit.cover, BoxFit.contain и другие.

    • Пример:

      fit: BoxFit.cover // Изображение будет обрезано, чтобы заполнить область
    • Применение: Позволяет настроить, как изображение будет отображаться, особенно если его пропорции не совпадают с областью.

  5. alignment

    • Описание: Определяет, как изображение будет выровнено, если оно меньше заданной области.

    • Пример:

      alignment: Alignment.center // Изображение будет выровнено по центру
    • Применение: Полезно для управления положением изображения внутри заданной области.

  6. color

    • Описание: Цвет, который будет наложен на изображение. Можно использовать для создания эффектов.

    • Пример:

      color: Colors.red.withOpacity(0.5) // Накладывает красный цвет с полупрозрачностью
    • Применение: Позволяет добавить цветовые эффекты к изображению.

  7. colorBlendMode

    • Описание: Определяет, как цвет будет смешиваться с изображением.

    • Пример:

      colorBlendMode: BlendMode.colorBurn // Способ наложения цвета
    • Применение: Позволяет контролировать, как цвет накладывается на изображение.

  8. semanticLabel

    • Описание: Задает текст для вспомогательных технологий, таких как экранные читалки.

    • Пример:

      semanticLabel: 'User uploaded image' // Описание для вспомогательных технологий
    • Применение: Помогает сделать ваше приложение более доступным для людей с ограниченными возможностями.

Итог

Image.file — это удобный способ для загрузки и отображения изображений, которые находятся на файловой системе устройства. С помощью Image.file вы можете интегрировать пользовательские фотографии и другие изображения в ваше приложение, улучшая его функциональность и пользовательский опыт.

PreviousImage.assetNextImage.memory

Last updated 6 months ago

🧩
📸
🧩