当前位置:网站首页>Flutter introduction advanced trip (5) Image Widget
Flutter introduction advanced trip (5) Image Widget
2022-08-09 13:25:00 【Xie Dong_】
Review of past topics:
We have learned the Widget used for text display in Flutter. For example, we will use Text Widget to display a line or a piece of basic text. If we need to set style, color and other attributes with Text, we can customize it by specifying style for TextThe styles in TextStyle show the effects we need. For text input controls, we learned about TextField and learned that simple text input requirements can be completed through TextField. InputDecoration can be used to add styles to the input box, such as comfortable auxiliary prompts, borders, and both sides.icon and so on.
Today, let's learn about another Widget---Image. As the name suggests, Image is a control used to display pictures. Like Text, it belongs to StatelessWidget. I will explain StatelessWidget and StatefullWidget in detail in a later article.Readers can ignore this knowledge point for the time being. When doing native Android development, we can specify different image sources for ImageView, which can be source networks, drawables, bitmaps, files, etc. Flutter also supports loading images from different sources., but the images that Flutter loads with different resources are slightly different from native Android. Let's enter the topic of this issue together.
How Flutter loads different resource images:
- new Image, to get the image from ImageProvider.
- new Image.asset, to get the image from the AssetBundle.
- new Image.network, for getting an image from a URL.
- new Image.file, to get an image from a file.
- new Image.memory, to get the image from memory
Image in flutter supports JPEG, PNG, GIF, Animated GIF, WebP, Animated WebP, BMP, and WBMP image formats.
1. Load image from network:
In order to develop good code reading habits, let's first look at the construction method of Image.network
Image.network(String src, {Key key,double scale: 1.0,//reduction factorthis.width,//widththis.height,//highthis.color,this.colorBlendMode,this.fit, //fill methodthis.alignment: Alignment.center,this.repeat: ImageRepeat.noRepeat, //Image arrangementthis.centerSlice,this.matchTextDirection: false,this.gaplessPlayback: false,Map headers,}) Through the construction method, we can initially clearly understand that to load network images in Flutter, we only need to specify the src of the image in Image.network, which is the url of the target image. If you need to configure the image width, height, and zoomIt is better to write than the corresponding construction method. The following example code shows loading the image from the target url, and setting the width and height of the image to 500*500;
Rendering:

Sample code:
import 'package:flutter/material.dart';void main() {runApp(new MaterialApp(home: new ImageDemo()));}class ImageDemo extends StatelessWidget {@overrideWidget 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. Load images from the project's local directory:
To load images in the project directory in Flutter, we need to declare and import resources from pubspec.yaml before we can use the image resources in the dart file. Otherwise, even if the image exists in the project directory, after you specify the path in the dart fileIt also cannot be loaded normally. Readers should pay attention to this point, which is a bit different from writing native Android.
For example, I imported the two pictures aaa.png and a.png in the images folder into the project through pubspec.yaml:

Replace the body part of the above code with Image.asset method.
body: new Image.asset('images/aaa.png',width: 500,height: 500,)The construction method of Image.asset is similar to that of network, so I won't post it. Readers can check the source code by themselves. Let's take a look at the pictures we loaded from the project directory to end our study on Image in this issue.
Rendering:

Next: Flutter Getting Started and Advanced Tour (6) Layout Widget
边栏推荐
猜你喜欢

Common gadgets of Shell (sort, uniq, tr, cut)

The new features of ABP 6.0.0 - rc. 1

报告:想学AI的学生数量已涨200%,老师都不够用了

腾讯欲成育碧最大股东/ 米哈游招NLP内容生成研究员/ AI发现四千余物种濒临灭绝...今日更多新鲜事在此...

两分钟录音就可秒变语言通!火山语音音色复刻技术如何修炼而成?

How to save Simulink simulation model as image or PDF

水能自发变成“消毒水”,83岁斯坦福教授:揭示冬天容易得流感的部分原因...

Rust from entry to proficient 04 - data types

智驾科技完成C1轮融资,此前2轮已融4.5亿元

ViewPager fragments of nested data blank page abnormal problem analysis
随机推荐
ViewPager fragments of nested data blank page abnormal problem analysis
腾讯发布第二代四足机器人Max,梅花桩上完成跳跃、空翻
注:检测到当前使用的ADB不是HBuilder内置或自定义ADB:PID为:9544进程名称为:adb.exe 路径为:c:\users\administrator\appdata\local\and
张朝阳对话俞敏洪:一边是手推物理公式,一边是古诗信手拈来
Flutter入门进阶之旅(一)-初识Flutter
Nature:猪死亡1小时后,器官再次运转
The new features of ABP 6.0.0 - rc. 1
MySQL 原理与优化,Group By 优化 技巧
金融业“限薪令”出台/ 软银出售过半阿里持仓/ DeepMind新实验室成立... 今日更多新鲜事在此...
h264 protocol
Flutter Getting Started and Advanced Tour (8) Button Widget
GPT-3组合DALL·E,60秒内搞定游戏设定和原型动画!网友看后:这游戏想玩
Extract EventBus encapsulation to base class using annotations
Flutter入门进阶之旅(四)文本输入Widget TextField
合并两个有序列表
无重复字符的最长子串
在“Extend the Omniverse”比赛中构建用于 3D 世界的工具
史上最猛“员工”,疯狂吐槽亿万富翁老板小扎:那么有钱,还总穿着同样的衣服!...
【TKE】GR+VPC-CNI混用模式下未产品化功能配置
Flutter入门进阶之旅(三)Text Widgets