【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part76 Painting and effects
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part76 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part75 Painting and effects
引き続き、Painting and effectsについて学びます。
Painting and effects
Transformウィジェット
transformプロパティ
transform
プロパティはウィジェットにいろいろな効果を与えることができるようです。
傾きを変える
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:transparent_image/transparent_image.dart';
void main() {
runApp(new MaterialApp(home: new MyApp()));
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _State();
}
}
class _State extends State<MyApp> {
int _index = 0;
@override
// pubspec.yamlのdependenciesに「transparent_image: ^2.0.0」を追加しておきます。
// pub getを忘れずに!
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: Transform(
transform: Matrix4.skewX(0.3),
child: FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
image: 'https://picsum.photos/250?image=9',
fadeInDuration: const Duration(milliseconds: 200),
width: 100,
height: 100,
fit: BoxFit.cover,
)),
));
}
}
ウィジェットが傾くのではなく、画像そのものが傾くんですね。
3D表示
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:transparent_image/transparent_image.dart';
void main() {
runApp(new MaterialApp(home: new MyApp()));
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _State();
}
}
class _State extends State<MyApp> {
int _index = 0;
@override
// pubspec.yamlのdependenciesに「transparent_image: ^2.0.0」を追加しておきます。
// pub getを忘れずに!
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: Transform(
transform: Matrix4.identity()
..setEntry(3, 2, 0.01)
..rotateX(0.6),
child: FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
image: 'https://picsum.photos/250?image=9',
fadeInDuration: const Duration(milliseconds: 200),
width: 100,
height: 100,
fit: BoxFit.cover,
)),
));
}
}
3DというかZ軸に歪んだように見えますね😆
最後に
この機能はいったいどこに需要が・・・。
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません