Flutter(三):Image

2020-07-22  本文已影响0人  林ze宏

1 普通用法

import 'package:flutter/material.dart';

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

// 自定义组件
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    // MaterialApp 作为顶层组件
    return MaterialApp(
      // Scaffold 定义导航头部和页面主要内容
      home: Scaffold(
        appBar: AppBar(
          title: Text('flutter 标题'),
        ),
        body: HomePage(),
      ),
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
        height: 300.0,
        width: 300.0,
        // color: Colors.grey, // 不能和 decoration color 同时存在,会报错
        decoration: BoxDecoration(
          color: Colors.red,
        ),
        child: Image.network(
          // "http://pic.baike.soso.com/p/20130828/20130828161137-1346445960.jpg",
          "https://www.itying.com/images/202004/thumb_img/1067_thumb_G_1587531602352.jpg",
          alignment: Alignment.center,

          // color: Colors.blue, // 一般不用,切图就应该切好了
          // colorBlendMode: BlendMode.lighten,

          fit: BoxFit.cover,

          // repeat: ImageRepeat.repeatX,
        ));
  }
}


2 实现圆形和圆角图片

import 'package:flutter/material.dart';

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

// 自定义组件
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    // MaterialApp 作为顶层组件
    return MaterialApp(
      // Scaffold 定义导航头部和页面主要内容
      home: Scaffold(
        appBar: AppBar(
          title: Text('flutter 标题'),
        ),
        body: HomePage(),
      ),
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      height: 300.0,
      width: 300.0,
      // color: Colors.grey, // 不能和 decoration color 同时存在,会报错
      decoration: BoxDecoration(
          color: Colors.red,
          borderRadius: BorderRadius.circular(150),
          image: DecorationImage(
            // "http://pic.baike.soso.com/p/20130828/20130828161137-1346445960.jpg",
            image: NetworkImage(
              "https://www.itying.com/images/202004/thumb_img/1067_thumb_G_1587531602352.jpg",
            ),
            fit: BoxFit.cover,
          )),
    );
  }
}

效果
import 'package:flutter/material.dart';

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

// 自定义组件
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    // MaterialApp 作为顶层组件
    return MaterialApp(
      // Scaffold 定义导航头部和页面主要内容
      home: Scaffold(
        appBar: AppBar(
          title: Text('flutter 标题'),
        ),
        body: HomePage(),
      ),
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      child: ClipOval(
        child: Image.network(
          "https://www.itying.com/images/202004/thumb_img/1067_thumb_G_1587531602352.jpg",
          width: 100,
          height: 100,
          fit: BoxFit.cover,
        ),
      ),
    );
  }
}

3 引入本地图片

然后,打开 pubspec.yaml 声明一下添加的图片文件,注意要配置对

最后,在代码中就可以用了

import 'package:flutter/material.dart';

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

// 自定义组件
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    // MaterialApp 作为顶层组件
    return MaterialApp(
      // Scaffold 定义导航头部和页面主要内容
      home: Scaffold(
        appBar: AppBar(
          title: Text('flutter 标题'),
        ),
        body: HomePage(),
      ),
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      child: ClipOval(
        child: Image.asset(
          "images/a.jpeg",
          width: 100,
          height: 100,
          fit: BoxFit.cover,
        ),
      ),
    );
  }
}

上一篇 下一篇

猜你喜欢

热点阅读