LoginSignup
2
0

More than 1 year has passed since last update.

FlutterでImage.networkの画像サイズを取得する。

Posted at

FlutterでImage.networkの画像サイズを取得する。

Flutterで画像をWidgetとして表示させる方法は主に2つあると思います。一つは登録したてある画像をImage.assetで読み込む方法。そしてもう一つがImage.networkを使用し,画像URLから表示させる方法です。
このImage.networkを使用する方法は画像の登録等の手間がかからないためお手軽に画像を表示させることができるのですが画像サイズの取得が簡単にはできません。なので自分が2時間くらい様々な記事を見てできた方法を紹介します。

import 'dart:async';
import 'dart:ui' as ui;

    Future<Size> getImageSize() async {
      final Image image = Image.network('画像URL');
      final Completer<Size> completer = Completer<Size>();
      image.image.resolve(ImageConfiguration.empty).addListener(
        ImageStreamListener(
              (ImageInfo image, bool synchronousCall) {
            final ui.Image myImage = image.image;
            final Size size = Size(
                myImage.width.toDouble(), myImage.height.toDouble());
            completer.complete(size);
          },
        ),
      );
      return completer.future;
    }

この関数を使用することで画像サイズが非同期ですが取得できます。

 参考文献

Flutterで画像を表示する方法【まとめ】
How do I determine the width and height of an image in Flutter?
How to get size from a NetworkImage in flutter

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0