northpaddyのブログ

日々学んだプログラミングについてアウトプットしていきます

Flutterデモアプリをカスタマイズしてみよう⑤

概要

Flutterデモアプリを少しずつ弄っていってFlutterに慣れていくのが目的です

前回の記事はこちら

前回までの画面の状態とコードは以下のようになっています

今回行うこと(画像表示)

今回は画像の表示をやっていきたいと思います

  • 画像表示
    • ネット上にある画像をURLで呼び出す方法
    • アプリ自体に画像を保存しておく方法
  • 画像の大きさの変更

画像の表示

画像の表示の仕方には2つあります

  • ネット上にある画像をURLで呼び出す方法
  • アプリ自体に画像を保存しておく方法

ネット上にある画像をURLで呼び出す方法

画像をURLで呼び出す方法は2つあります。
今回は公式ドキュメントに紹介されてある画像を呼び出してみます
やり方はとても簡単で一つ目が

Image.network('https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg',)

二つ目が

const Image(
  image: NetworkImage('https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg'),
)

と記述するだけです
(どちらでもやっていることは変わりません。好きな方でやってみましょう!)

今回はTextの上に画像を表示させてみます
実際にコードに打ち込んでみましょう

body: Container( //Containerを追加
  child: Center( //その子供にCenter
    child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          Image.network( //Image.networkを追加
            'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg',
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'ボタンを押した回数は  ',
              ),
              Text(
                '$_counter',
                style: Theme.of(context).textTheme.headline4,
              ),
              Text(
                '  回',
              ),

ホットリロードしてみます
https://i.gyazo.com/1853cab7b0af6d60c38e5ff0bf5ae5e3.png
画像が表示されました!

アプリ自体に画像を保存しておく方法

今度はローカル環境に保存されている画像を
アプリに保存し表示させてみます
どんな画像でも良いですが
公式ドキュメントからフクロウの画像を保存しておきましょう

・imagesフォルダの作成
Project内のこのアプリの名前のところで右クリックを押し
new→Directoryを選択し、imagesフォルダを作ります
f:id:paddy_north:20201121160352j:plain

以下のように作成されていれば成功です
https://i.gyazo.com/0007cd1eaaaaa1659937dc1c26b2019d.png
Finderなどから先ほど保存した画像をドラック&ドロップしてimagesフォルダの中に入れていきます
https://i.gyazo.com/8b0f158de30585a7ec90a6b85d135d86.png
フォルダ内に画像ファイルがあれば成功です

・pubspec.yamlに記述
保存した画像を読み込ませる為には
pubspec.yamlにその画像がどこにあるのか記載しておかなければいけません
pubspec.yamlとはProject内のファイルにあります
開いてみると色々書いてあります
読みにくいのでコメントアウトを削除しておきます
https://i.gyazo.com/9b087dbfcc78e157880120f3afa88ad2.png
すっきりしました!

では画像の場所の記載をしていきます
一番下の

flutter:
  uses-material-design: true

の下にこう記述します

flutter:
  uses-material-design: true
  assets:
    - images/owl.jpg

assets内に保存した画像の場所を書いていく訳です

準備が終わりました
画像を表示されてみましょう
main.dartにて
先ほど追加した画像の下に追記していきましょう

Image.network(
  'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg',
),
Image.asset('images/owl.jpg'), //追記

https://i.gyazo.com/d524f48544e397f28c357e1fd4b0ba23.png
このような画面になったと思います
表示が変なことになっていますがアプリ内に保存されている画像の表示が出来ました!

今回は「ネット上にある画像をURLで呼び出す方法」で表示させているコードは消しておきます

画像の大きさの変更

現在の表示はこのようになっています
https://i.gyazo.com/1b86a52e3b9bf09b9bf6023bfdd6a7f9.png
画像の大きさを変更していきましょう

Image.asset('images/owl.jpg',
  height: 250,
  width: 250,
),

heightとwidthの値を指定するだけです
https://i.gyazo.com/31502715f185c5a3e4975a2248c7038b.png
画像のサイズ変更が出来ました!
お好きなサイズに変更してみてください

まとめ

今回は画像の表示を行いました
表示の仕方には2つありましたが、必要に応じてやり方を変えてみると良いのかもしれませんね
私はその違いの理解はしていません笑