概要
Flutterを使ってアプリを開発してみようかと思います。今回のブログポストではFlutterでイメージを表示する方法について説明します。
このブログポストで紹介するソースコードは下記のリンクで確認できます。
ローカルイメージ表示
Flutterでローカルイメージを表示するため、まずイメージを保存するフォルダが必要です。フォルダの名前は何でもいいですが、ここではassets
と言う名前を使いました。
それじゃ、プロジェクトのフォルダ中にassets
フォルダを生成します。
flutter create my_app
cd my_app
mkdir assets
そして当該フォルダに画面に表示したイメージをコピーします。
Flutterで画面にイメージを表示するためにはイメージファイルまたはフォルダをpubspec.yaml
に作成する必要があります。
そしたら、pubspec.yaml
ファイルを開いて下記のような部分を探します。
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
イメージファイルを追加するためには次のようにコメントを修正します。
# To add assets to your application, add an assets section, like this:
assets:
- assets/bunny.gif
- assets/profile.png
上のようにイメージファイルを一つづつ指定してもいいですが、下記のように当該フォルダを指定しても良いです。
# To add assets to your application, add an assets section, like this:
assets:
- assets/
そしたら保存したファイルを画面に表示するため下記のようにmain.dart
ファイルを修正します。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
debugShowCheckedModeBanner: false,
home: Home(),
);
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Image'),
),
body: Center(
child: Image(image: AssetImage('assets/profile.png')),
),
);
}
}
イメージを表示するためには下記のようにImage
ウィジェットを使います。ローカルイメージを使う時にはAssetsImage
ウィジェットを使うし、表示したいローカルイメージを指定します。
Image(image: AssetImage('assets/profile.png'))
このようにmain.dart
ファイルを修正してFlutterプロジェクトを実行すると次のようにローカルイメージがうまく表示されることが確認できます。
次のようにImage
ウィジェットの色んなオプションを使ってイメージを表示することができます。
Image(
image: AssetImage('assets/profile.png'),
width: 200,
height: 100,
fit: BoxFit.fill,
)
または下記のように使うこともできます。
Image.asset('assets/profile.png')
次のようにオプションを使うこともできます。
Image.asset(
'assets/profile.png',
width: 200,
height: 100,
fit: BoxFit.fill,
)
@2x, @3x
色んな解像度をサポートするため、普通イメージを作る時2x
、3x
のイメージも生成して使います。Flutterでは2x
、3x
の解像度のイメージを使うためには次のように2.0x
フォルダと3.0x
フォルダを生成する必要があります。
.../my_icon.png
.../2.0x/my_icon.png
.../3.0x/my_icon.png
このように同じ名前のファイルを各フォルダに保存するとFlutterはこれを認識して解像度にあうイメージを自動で使います。
ネットワークイメージ
次はサーバにあるイメージを表示する方法について説明します。ネットワークにあるイメージを表示するためには次のようにAssetImage
代わりにNetworkImage
ウィジェットを使います。
Image(
image: NetworkImage(
'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg',
),
),
次のようなオプションも使えます。
Image(
image: NetworkImage(
'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg',
),
width: 200,
height: 100,
fit: BoxFit.fill,
),
ローカルイメージみたいに次のように使うこともできます。
Image.network(
'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg',
)
次のようにオプションを使うこともできます。
Image.network(
'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg',
width: 200,
height: 100,
fit: BoxFit.fill,
),
完了
これでFlutterでローカルイメージとネットワークイメージを表示するためAssetsImage
とNetworkImage
ウィジェットを使う方法についてみてみました。また、Image
ウィジェットのNamedコンストラクトを使ってローカルイメージとネットワークイメージを表示する方法についてもみてみました。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。