【Flutter】色を指定する方法
この記事は、Gajeroll Advent Calendar 2022 の18日目の記事です。
今回は、Flutterで開発する際に、Dartファイル内で色を指定する方法を紹介します。
準備
まず、始めにmaterial.dart
をimportしましょう。
import 'package:flutter/material.dart';
import
する、というのは、.dart
ファイル内の最初の部分にimport '...';
のような文を記述することです。
上のコードが書かれていない場合は、コピーして.dart
ファイルの1行目に追加すればOKです。
Colors.<色の名前>で指定
名前のついている色は、Colors.blue
のように指定することができます。
color: Colors.blue,
ただし、Colors.blue
は原色の青ではないことに注意してください。
red
やgreen
なども同様に原色にはなりません。
完全な透明にしたい場合はColors.transparent
を指定しましょう。
Color()で指定
数値で細かく指定したい場合は、Color(<整数>)
のように指定することができます。
例えば、(原色の)青は
color: Color(0xff0000ff),
のように指定します。
解説
上のコードは、Color(<整数>)
のように設定されているのですが、0xff0000ff
のどこが整数なの??という感じかも知れません。
下のように分けてみるとわかりやすくなります。
0x ff 00 00 ff
16進数 透過度 Red Green Blue
先頭の0xは、「16進数で書きますよ」ということを示しています。
この後に書かれた数字(16進数)が、実際に色を指定する部分です。
ff
:透過度(アルファ値、Alpha)
00
なら無色透明、ff
なら続くRGBで指定した通りの色になる。
00
:赤(Red)
赤の成分をどれだけ強くするかを示す。
00
:緑(Green)
緑の成分をどれだけ強くするかを示す。
ff
:青(Blue)
青の成分をどれだけ強くするかを示す。
ちなみにColor()
の引数は整数であり、16進数である必要はないので、10進数で指定することもできます。
例えば、0xff0000ff
は10進数では4278190335
なので、Color(4278190335)
と書いても問題ありません。
無色透明はColor(0)
と指定することもできます。
白は0xffffffff
を10進数に変換すればよいので、Color(4294967295)
となります。
16進数のff
のような書き方よりも、10進数の255
のような書き方の方が良い、という場合は、次のColor.fromARGB()
で指定するのが良いでしょう。
Color.fromARGB()で指定
これは、先ほどのColor()
を、Alpha、Red、Green、Blueの4つに分割して指定
できるものです。
例えば、(原色の)青は
color: Color.fromARGB(255, 0, 0, 255),
のように指定します。
ちなみに、これは10進数にしなければならないという制約はないので、16進数で指定することもできます。
color: Color.fromARGB(0xff, 0x0, 0x0, 0xff),
ただ、これを使うならColor()
で指定する方が楽です。
CSSのrgba()
のように、不透明度を最後に設定したい!という場合は、Color.fromRGBO()
を使いましょう。
Color.fromRGBO()で指定
例えば、(原色の)青は
color: Color.fromRGBO(0, 0, 255, 1),
と指定します。
4つ目のopacity(不透明度)は、0
から1
の小数で指定しましょう。
0
なら透明、1
ならRGBで指定した通りの色になります。
CSSに慣れている方にはわかりやすい書き方だと思います。
もっと詳しく
さらに詳しく知りたい方は、以下のページをご覧ください。
Flutter Color Class Documentation
Flutter Colors Class Documentation
最後までご覧いただきありがとうございます。 PCロールでは、テクノロジーに関する情報をまとめて発信しています。 また、おすすめのガジェットについて幅広く紹介していく、ガジェロールもあります。 ガジェットやソフトを使うエンジニア・クリエイターはぜひご覧ください。