0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutterでプロフィールアイコンを作ってみましょう!(CircleAvatar紹介)

Posted at

今のアプリはほとんどプロフィールが入ってるといっても過言ではないほど幅広く使われているのかプロフィールアイコンです。

もちろんFlutterでも簡単に実装ができますので試してみましょう!

実装に入る前に何をするものなのか知ってから実装するのか理解しやすいので説明から始めます!

CircleAvatarの概念

CircleAvatarは円形のウィジェット で、画像やアイコン、テキストを表示できます。主にユーザーのプロフィール写真やグループアイコン、イニシャル表示などに使用されます。

CircleAvatarで使ってる主なプロパティ

プロパティ 説明
radius 円の半径を指定
backgroundColor 背景色
backgroundImage 円の中に表示する画像 (NetworkImageAssetImage)
child アイコンやテキストを表示するときに使用
foregroundColor child のテキストやアイコンの色

使う例

  • 実装結果はDartPadを使いました。

1.基本的な真っ白プロフィール

CircleAvatar(
  radius: 30,
  backgroundColor: Colors.grey[300],
  child: Icon(Icons.person, size: 30, color: Colors.white),
)
image.png (9.7 kB)

プロフィールの基本となるまるができました!

2.デフォルトアイコンがあるプロフィール

CircleAvatar(
  radius: 30,
  backgroundColor: Colors.grey[300],
  child: Icon(Icons.person, size: 30, color: Colors.white),
)
image.png (11.0 kB)

1段階上がってデフォルトアイコンでも使われるアイコンも実装ができます!

3.ボーダーラインがあるプロフィール(インスタグラムに使われてる)

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(home: Scaffold(body: Center(
  child: Container(
    padding: EdgeInsets.all(2),
    decoration: BoxDecoration(
      color: Colors.blue, // ボーダーの色
      shape: BoxShape.circle,
    ),
    child: CircleAvatar(
      radius: 30,
      backgroundImage: NetworkImage('https://example.com/user.jpg'),
    ),
  ),
))));
image.png (10.8 kB)

この実装はインスタンスでよく見かけました!
グラデーションが入るとストリを表現することができます。

4.ステータスを表示するプロフィール

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(home: Scaffold(body: Center(
  child: Stack(
    children: [
      CircleAvatar(
        radius: 30,
        backgroundImage: NetworkImage('https://example.com/user.jpg'),
      ),
      Positioned(
        bottom: 0,
        right: 0,
        child: Container(
          width: 12,
          height: 12,
          decoration: BoxDecoration(
            color: Colors.green, // オンライン
            shape: BoxShape.circle,
            border: Border.all(color: Colors.white, width: 2),
          ),
        ),
      ),
    ],
  ),
))));

image.png (9.6 kB)

最後にFacebokのメッセージで使ってることです。
ユーザーが現在接続してるのかどうかを表示することができます。

最後に

簡単にアイコンの色んな種類を実装してみました。

Flutterではアプリケーションで使われてる機能をほとんど実装することができますのでかなり魅力的な言語だと思ってます。

もちろん現在のコードをそのまま使うのもありますが、もっとリアルなアプリを作ってみたいならユーザーが接続してるのかどうかを判断するWebSocket、APIが必要ですので
後ほどこちらに関しての投稿も記載してみます。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?