カテゴリ: FlutterのUI開発 更新日: 2026/07/03

Flutterの画像表示の基本!Imageウィジェットの使い方をわかりやすく解説

274
Flutterの画像表示の基本!Imageウィジェットの使い方

先生と生徒の会話形式で理解しよう

生徒

「Flutterで画像を画面に表示したいんですけど、どうすればいいですか?」

先生

「FlutterではImageウィジェットを使えば、簡単に画像を表示できますよ。」

生徒

「画像ってネットのものでも、自分のアセットでも表示できるんですか?」

先生

「もちろんです!Flutterの画像表示にはいろんな方法がありますから、順番に見ていきましょう。」

1. Flutterで画像を表示する基本:Imageウィジェットとは?

1. Flutterで画像を表示する基本:Imageウィジェットとは?
1. Flutterで画像を表示する基本:Imageウィジェットとは?

Flutterで画像を表示するには、Imageウィジェットを使用します。Flutterアプリ開発において、画像の表示はとても重要な要素で、UIの魅力を高めるためにも欠かせません。

Imageウィジェットにはいくつかの表示方法があります。代表的なものは以下の3つです:

  • Image.asset:アプリに含まれるローカル画像を表示
  • Image.network:Web上のURL画像を表示
  • Image.file:デバイスのローカルファイルを表示

2. Image.assetでアセット画像を表示する方法

2. Image.assetでアセット画像を表示する方法
2. Image.assetでアセット画像を表示する方法

アプリに含まれる画像ファイル(例えばPNGやJPG)を表示したい場合は、Image.assetを使います。まず、画像をassets/imagesなどのフォルダに配置し、pubspec.yamlに登録しましょう。


Image.asset(
  'assets/images/sample.png',
  width: 200,
  height: 200,
  fit: BoxFit.cover,
)

fitプロパティを使えば、画像の表示方法(拡大・縮小・トリミング)も柔軟に設定できます。

3. Image.networkでインターネット上の画像を表示する

3. Image.networkでインターネット上の画像を表示する
3. Image.networkでインターネット上の画像を表示する

Flutterでは、Web上の画像URLを使って直接画像を表示することも可能です。Image.networkを使えば、APIレスポンスなどで得た画像もすぐに表示できます。


Image.network(
  'https://example.com/images/photo.jpg',
  width: 300,
  height: 200,
  fit: BoxFit.contain,
)

ネットワーク画像は読み込み時間がかかることもあるため、loadingBuildererrorBuilderを使ってローディング中の表示やエラー対応もできます。

Flutterを「実務レベル」で使えるようになりたい人や、 iPhone / Android両対応アプリ開発の流れをまとめて学びたい人には、 定番の実践書がこちらです。

Flutter実践開発をAmazonで見る

※ Amazon広告リンク

4. Image.fileでローカルファイルを表示する

4. Image.fileでローカルファイルを表示する
4. Image.fileでローカルファイルを表示する

スマホやタブレットの内部ストレージに保存された画像を表示するにはImage.fileを使います。これは主にユーザーが撮影した写真などを表示する際に使用されます。

ファイル選択にはimage_pickerなどのパッケージを組み合わせて使うことが一般的です。

5. BoxFitで画像の拡大・縮小をコントロールする

5. BoxFitで画像の拡大・縮小をコントロールする
5. BoxFitで画像の拡大・縮小をコントロールする

Flutterの画像表示で大切なのが、fitプロパティです。これを使うことで、画像の表示方法を細かく調整できます。

  • BoxFit.cover:枠をはみ出してもいいから隙間をなくす
  • BoxFit.contain:画像全体が枠に収まるように縮小
  • BoxFit.fill:枠いっぱいに引き伸ばし(比率無視)
  • BoxFit.fitWidth:幅を枠に合わせる

UIの見た目をきれいに保つために、表示する場所に合ったfit設定をすることが大切です。

6. Imageウィジェットに枠や丸みをつけたいときは?

6. Imageウィジェットに枠や丸みをつけたいときは?
6. Imageウィジェットに枠や丸みをつけたいときは?

画像に丸みをつけたり枠をつけたいときは、ClipRRectContainerと組み合わせて使います。


ClipRRect(
  borderRadius: BorderRadius.circular(16),
  child: Image.asset('assets/images/photo.png'),
)

これで画像が角丸になり、より洗練されたデザインになります。さらにContainerdecorationを使えば、枠線(ボーダー)も簡単に付けられます。

7. Flutterで画像をキャッシュする方法

7. Flutterで画像をキャッシュする方法
7. Flutterで画像をキャッシュする方法

ネットワーク画像は毎回通信して表示するため、パフォーマンスに影響が出ることもあります。そんなときはcached_network_imageパッケージを使いましょう。

このパッケージを使えば、画像を一度読み込んでキャッシュしてくれるので、2回目以降は素早く表示できます。


CachedNetworkImage(
  imageUrl: 'https://example.com/image.jpg',
  placeholder: (context, url) => CircularProgressIndicator(),
  errorWidget: (context, url, error) => Icon(Icons.error),
)

Flutterでネットワーク画像を多用するアプリでは、ぜひ取り入れておきたいテクニックです。

8. 画像のアスペクト比を維持するには?

8. 画像のアスペクト比を維持するには?
8. 画像のアスペクト比を維持するには?

画像の縦横比を保ったまま表示したい場合は、AspectRatioウィジェットを使うと便利です。


AspectRatio(
  aspectRatio: 16 / 9,
  child: Image.asset('assets/images/sample.png'),
)

たとえば16:9や4:3などの比率で表示することで、画面のバランスがよくなり、UI全体の見た目が整います。

まとめ

まとめ
まとめ

Flutter画像表示の基礎をしっかり理解する

Flutterの画像表示はImageウィジェットを中心に構成されておりFlutter開発におけるUI構築の中でも非常に重要な役割を持っています。Flutter 画像表示やFlutter Imageウィジェットというキーワードで検索されることが多いように画像の扱い方を理解することはアプリ開発の品質を大きく左右します。

Image.asset Image.network Image.fileの三つの基本パターンを理解することでローカル画像 ネットワーク画像 デバイス画像のすべてに対応できるようになります。これにより実務におけるほぼすべての画像表示ケースをカバーできます。

用途別の使い分けが重要

Flutterの画像表示では用途に応じた適切な選択が求められます。アプリ内の固定画像であればImage.assetを使い外部から取得する画像であればImage.networkを使うことで効率的な開発が可能になります。またユーザーが選択した画像やカメラで撮影した画像を扱う場合はImage.fileを利用します。

このようにFlutterの画像表示は単なる表示だけでなくアプリの仕様やデータの流れに密接に関係しています。Flutter初心者はまずこの基本の使い分けを確実に覚えることが重要です。

見た目を整えるための重要ポイント

Flutter UIを美しく見せるためにはBoxFitの理解が不可欠です。BoxFit.cover BoxFit.contain BoxFit.fillなどを使い分けることで画像の表示方法を柔軟に調整できます。特にレスポンシブデザインを意識する場合には画面サイズに応じたfit設定が重要になります。

またClipRRectを使った角丸表示やContainerを使った装飾を組み合わせることでユーザーにとって見やすく洗練されたデザインを実現できます。Flutter デザインやFlutter UI改善といった観点でも重要なポイントです。

パフォーマンスを意識した画像管理

Flutterアプリでは画像の表示が増えるとパフォーマンスに影響が出る可能性があります。特にネットワーク画像は毎回ダウンロードが発生するため表示速度が遅くなることがあります。そのためcached_network_imageのようなキャッシュ機能を活用することが重要です。

Flutter パフォーマンス改善やFlutter 高速化という観点でも画像キャッシュは必須の知識です。実務では画像の最適化やサイズ圧縮も合わせて検討することでより高速なアプリを構築できます。

実務で使える画像表示サンプル


import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('画像まとめ')),
        body: Column(
          children: [
            Image.asset(
              'assets/images/sample.png',
              width: 150,
              height: 150,
              fit: BoxFit.cover,
            ),
            Image.network(
              'https://example.com/sample.jpg',
              width: 150,
              height: 100,
              fit: BoxFit.contain,
            ),
            ClipRRect(
              borderRadius: BorderRadius.circular(12),
              child: Image.asset('assets/images/sample.png'),
            ),
          ],
        ),
      ),
    );
  }
}

アセット画像が表示される
ネットワーク画像が表示される
角丸画像が表示される

初心者がつまずきやすいポイント

Flutter初心者がよくつまずくポイントとしてpubspec yamlへの画像登録忘れやパス指定ミスがあります。Image.assetが表示されない場合はまずここを確認することが重要です。またネットワーク画像が表示されない場合はインターネット権限やURLの誤りを確認する必要があります。

さらに画像サイズの指定を行わない場合レイアウト崩れが発生することもあるためwidthやheightを適切に設定することが重要です。Flutter レイアウト崩れ対策として覚えておくと役立ちます。

Flutter画像表示スキルを伸ばすコツ

Flutterの画像表示スキルを向上させるためには実際にアプリを作ることが最も効果的です。プロフィール画面や商品一覧画面など画像を多く使うUIを作成することで実践的なスキルが身につきます。

また画像の読み込み速度や表示方法を比較しながら実装することでより深い理解につながります。Flutter開発では体験を通じて理解することが非常に重要です。

まとめとして押さえておくべきこと

FlutterのImageウィジェットはシンプルでありながら非常に強力な機能を持っています。Image.asset Image.network Image.fileの基本を理解しBoxFitや装飾を組み合わせることで高品質なUIを実現できます。

さらにキャッシュやパフォーマンスの最適化まで意識することで実務レベルのFlutterアプリ開発が可能になります。今回の内容をしっかり理解し自分のアプリに取り入れていきましょう。

先生と生徒の振り返り会話

生徒

Flutterで画像を表示する方法がしっかり理解できました

先生

Imageウィジェットの使い分けがとても重要です

生徒

アセットとネットワークの違いが分かりました

先生

用途に応じて適切に選ぶことが大切です

生徒

デザインも意識する必要があるんですね

先生

見た目とパフォーマンスの両方が重要です

生徒

実際にアプリを作って試してみます

先生

実践を通して理解を深めていきましょう

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Flutterで画像を表示するにはどうすればいいですか?Imageウィジェットの基本が知りたいです

Flutterで画像を表示するには、Imageウィジェットを使います。Image.assetやImage.network、Image.fileなどの形式で、ローカル画像やWeb画像、デバイス内の画像を表示できます。UI開発の基礎として覚えておくと便利です。

FlutterのImageウィジェットにはどんな種類がありますか?

FlutterのImageウィジェットには、Image.asset(アセット画像)、Image.network(インターネット上の画像)、Image.file(デバイス内の画像)があります。それぞれ使い分けることで、柔軟な画像表示が可能になります。
FlutterのUI開発の一覧へ
新着記事
Python
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに解説
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに徹底解説
Dart
Dartのクラスの作り方!定義・インスタンス生成の基礎
Dartのクラスの作り方を完全解説!初心者でも理解できるクラス定義とインスタンス生成の基礎
Java
Javaの同一性と同値性
Javaの同一性と同値性をわかりやすく解説!初心者向けの基礎知識
AWS
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク