flutter展示图片

一:相关配置

 ,如上图所示,在根目录同级的地方,添加相关文档夹,然后在pubspec.yaml

这个文件写如下内容

  assets:

    - images/show.jpg

    - images/2.0x/show.jpg

    - images/3.0x/show.jpg

该内容用来配置本地的图片的路径

二:代码

1,正常展示图片

// ignore: file_names
//展示正常的图片


import 'dart:ui';

import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(title: const Text("flutter demo")),
          body: const ShowContant()),
      theme: ThemeData(primarySwatch: Colors.blue,
    )
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Center(// 首先创建一个容器
      child: Container(
        // 其次,往容器里面添加一张图片
        // 容器里面添加一张图片,自然是一个child
        // 通过Image.network加载远程图片,并且加载图片,可以通过Image.某某来进行查找,上面有相关的提示,一共有4种提示
        // child: Image.network("https://image.baidu.com/search/detail"),
        // 通过本地加载图片
        child: Image.asset("images/show.jpg",
        // 添加对其因素
        //   alignment: Alignment.topLeft,
          // 是否重复
          // repeat: ImageRepeat.repeatY,
          // 设置图片显示标准,溢出还是全部放入,cover是指全部放入,会裁剪,显示最合适的效果
          fit: BoxFit.cover,

        ),
        width: 300,
        height: 300,
        decoration: const BoxDecoration(
          // 默认装饰盒子,显示是一个正方形,我们可以把它设置为一个圆形
          // borderRadius: BorderRadius.all(Radius.circular(150)),
          color: Colors.yellow
        ),
      )

    );
  }
}
 

2,展示圆形图片

// ignore: file_names
// 需求,在一个圆形里面展示图片


import 'dart:ui';

import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(title: const Text("flutter demo")),
          body: const ShowContant()),
      theme: ThemeData(primarySwatch: Colors.blue,
    )
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Center(// 首先创建一个容器
      child: Container(
        width: 300,
        height: 300,
        decoration: BoxDecoration(
          // 默认装饰盒子,显示是一个正方形,我们可以把它设置为一个圆形
          // borderRadius: BorderRadius.all(Radius.circular(150)),
          borderRadius: BorderRadius.circular(150),
          image: const DecorationImage(image: AssetImage("images/show.jpg"),
          // 在一个圆形中实现图片覆盖的效果
          fit: BoxFit.cover
          ),
          color: Colors.yellow
        ),
      )

    );
  }
}
 

3,展示自适应圆形图片

// ignore: file_names
// 需求,在一个圆形里面展示图片


import 'dart:ui';

import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(title: const Text("flutter demo")),
          body: const ShowContant()),
      theme: ThemeData(primarySwatch: Colors.blue,
    )
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Center(// 首先创建一个容器
      child: Container(
        // 这种方式,会自适应,根据图片的形状,来变成对应的图片
       child: ClipOval(
         child: Image.asset("images/show.jpg"),
       )
      )

    );
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值