Flutter入门进阶之旅(五)Image Widget

往期专题回顾:

      前面我们学习了Flutter中用于文本显示的Widget,比如我们显示一行或者一段基本文字会用到Text Widget,如果需要跟Text设置样式,颜色等属性,我们可以通过给Text指定style来定制TextStyle中的样式来展示我们需要的效果,对于文本输入控件,我们学习了TextField,了解到可以通过TextField完成简单的文本输入需求,可以通过InputDecoration给输入框添加样式,比如舒服辅助提示、边框、两边的icon等等。

     今天我们来学习一下另外一个Widget---Image,顾名思义Image是用于展示图片的控件,他跟Text一样,同属于StatelessWidget,关于StatelessWidget跟StatefullWidget我会在稍后的文章中具体讲解,在此读者可暂且忽略这一知识点,在做原生Android开发时,我们可以给ImageView指定不同的图片来源,可以是来源网络、drawable、bitmap、文件等,在Flutter中同样支持加载不同来源的图片,只不过Flutter加载不同资源的图片跟原生Android稍微有点差别,下面我们一起进入本期的主题。

Flutter加载不同资源图片的方式:

  • new Image, 用于从ImageProvider获取图像。
  • new Image.asset, 用于从AssetBundle获取图像。
  • new Image.network, 用于从URL获取图像。
  • new Image.file, 用于从文件中获取图像。
  • new Image.memory, 用于从内存中获取图像

在flutter中Image支持JPEG, PNG, GIF, Animated GIF, WebP, Animated WebP, BMP, 和 WBMP这几种图片格式。

1.从网络加载图片:

为了养成良好的代码阅读习惯,我们还是先来看下Image.network的构造方法

Image.network(String src, {
    Key key,
    double scale: 1.0,//缩小倍数
    this.width,//宽
    this.height,//高
    this.color,
    this.colorBlendMode,
    this.fit, //填充方式
    this.alignment: Alignment.center,
    this.repeat: ImageRepeat.noRepeat, //图片排列方式
    this.centerSlice,
    this.matchTextDirection: false,
    this.gaplessPlayback: false,
    Map<String, String> headers,
  })

通过构造方法,我们可以初步清楚的了解到在Flutter中加载网络图片,只需要在Image.network中指定图片的src,也就是目标图片的url即可,如果需要配置图片宽高、缩放比对应构造方法去写就好,下面实例代码,展示了从目标url上加载图片,并且把图片的宽高设置为500*500;

效果图:

示例代码:

import 'package:flutter/material.dart';

void main() {
  runApp(new MaterialApp(home: new ImageDemo()));
}

class ImageDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new TextField(
          decoration: new InputDecoration(),
        ),
      ),
      body: new Image.network("https://p1.ssl.qhmsg.com/dr/220__/t01d5ccfbf9d4500c75.jpg",width:500,height: 500,)
    );
  }
}

2.从项目本地目录加载图片:

Flutter中加载项目目录下的图片,需要我们先从pubspec.yaml中声明导入资源后,才能在dart文件中使用图片资源,不然即使图片存在项目目录下,在dart文件中你指定路径后也不能正常加载,这点读者应注意一下,跟我们写原生Android有点不同。

比如我在项目中把images文件夹下的两张图片aaa.png、a.png通过pubspec.yaml导入到项目中:

 

把上述代码中body部分换成Image.asset方式。

body: new Image.asset('images/aaa.png',width: 500,height: 500,)

关于Image.asset的构造方法跟network大同小异,我就不贴出来了,读者可自行查阅源码,下面看下我们从项目目录下加载的图片结束我们本期关于Image的学习。

效果图:

下一篇:Flutter入门进阶之旅(六)Layout Widget

博客有一定流量的时候或者有固定的访客的时候,是否想过也卖个广告位挣点网费,O(∩_∩)O~,经常逛博客的朋友应该会看到,某些博主在博客上放的招商广告,那广告位图片做的十分漂亮,如果你流量不错的话,是否也想过这些呢? 这些图片一般都放在博客的侧栏的显眼处,当你图片做好后,把它放到博客的侧栏的过程中,就会有点小麻烦了,需要修改sidebar.php中的代码,稍有不慎整个侧栏就会被你改动的面目全非,着实让人难受,如果你为此而烦恼的话,那么,你可以试试这款插件Image Widget,这款插件可以帮你添加图片到侧栏中,也让你省去了麻烦。 Image Widget插件安装: 1、下载Image Widget插件,将压缩包解压后,把文件夹上传到wp-content/plugins/目录下,登录WordPress管理后台,点击“Plugins”找到上传的插件,激活该插件。 2、插件激活后,在后台的左侧栏中“Appearance”--->“Widgets”中,把“Image Widgets”拖拽到sidebar中去。如下图所示: 图中是上传设置好后的效果,页面中主要包括了已下几个内容: •Title:标题 •Image:设置上传的图片 •Caption:图片的描述 •Link:图片链接的URL •width:宽度 •Height:高度 •Align:对其方式(无,左,中,右) •Alternate Text:设置Alt文本 这些内容的填写都十分的简单,图片上传成功后,那么,就会在前台页面出现漂亮的图片招商广告位了,这样就不会再去麻烦的修改代码了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值