クレヨンしんちゃん(Flutter)


クレヨンしんちゃんの記事を見て、Flutterで作りたくなったので、３０分で作成してみました。

<b>※注意 
クオリティーが低いです。なぜなら、他の方よりも早く上げようと思ったため短時間で作成してみました。投稿後に修正しようと思います。。。すみません。先に謝っておきます。。</b>




#キャンバスサイズの設定

```dart
BoxDecoration(
  gradient: LinearGradient(
  begin: Alignment.topCenter,
  end: Alignment.bottomCenter,
  colors: <Color>[
    Color(0xFFEE7D97),
    Color(0xFFffcc00),
  ],
),
```

![Simulator Screen Shot - iPhone 8 Plus - 2022-02-19 at 07.37.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672609/9d1bafbe-a4c6-d535-4ccd-5b5e52024261.png)





#タイトルの設定
・タイトルを設定する上で、Columnを使用してもいいが、今回は、`/n`と「　」を使用して代用。

```dart
Text(
  'ホットリロード\n'
  '　　めっちゃ便利だゾ',//全角の空白を２つ空けています。
    style: TextStyle(
    //文字の装飾の設定
    fontSize: 30,
    fontWeight: FontWeight.bold,
    color: Color(0xFF5B1152),
  ),
),
```


![Simulator Screen Shot - iPhone 8 Plus - 2022-02-19 at 07.41.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672609/13a44b00-358a-801f-29b5-33a34413176e.png)




テキストと画像の２つができたので、重ねたいと思います。
そこで使えるものが`Stack`です。


```dart
Stack(
  children: [
    Center(
      child: Container(
        width: MediaQuery.of(context).size.width,
        height: MediaQuery.of(context).size.height / 3,
          decoration: const BoxDecoration(
          gradient: LinearGradient(
            begin: Alignment.topCenter,
            end: Alignment.bottomCenter,
            colors: <Color>[
              Color(0xFFEE7D97),
              Color(0xFFFFCC00),
            ],
          ),
        ),
      ),
    ),
    const Center(
      child: Text(
        'ホットリロード\n'
        '　　めっちゃ便利だゾ',
          style: TextStyle(
            fontSize: 30,
            fontWeight: FontWeight.bold,
            color: Color(0xFF5B1152),
          ),
        ),
      ),
    ],
  ),
```



![Simulator Screen Shot - iPhone 8 Plus - 2022-02-19 at 07.47.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672609/1b427a19-74d7-8599-9816-136a9d044412.png)




#完成したコード

以下のコードをコピペすることで簡単にできます。



```dart
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  const HomeScreen({Key? key}) : super(key: key);

  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Stack(
        children: [
          Center(
            child: Container(
              width: MediaQuery.of(context).size.width,
              height: MediaQuery.of(context).size.height / 3,
              decoration: const BoxDecoration(
                gradient: LinearGradient(
                  begin: Alignment.topCenter,
                  end: Alignment.bottomCenter,
                  colors: <Color>[
                    Color(0xFFEE7D97),
                    Color(0xFFffcc00),
                  ],
                ),
              ),
            ),
          ),
          const Center(
            child: Text(
              'ホットリロード\n'
              '　　めっちゃ便利だゾ',
              style: TextStyle(
                fontSize: 30,
                fontWeight: FontWeight.bold,
                color: Color(0xFF5B1152),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

```


## 最後に、

僕が作成したものよりもおそらくいいものがたくさんあると思います。Flutterでこんなことができるのかと知ってもらえるだけで嬉しいです。