当前位置:网站首页>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
边栏推荐
- 智驾科技完成C1轮融资,此前2轮已融4.5亿元
- FFmpeg compiles and installs on win10 (configure libx264)
- ABAP 面试题:如何使用 ABAP 编程语言的 System CALL 接口,直接执行 ABAP 服务器所在操作系统的 shell 命令?
- FFmpeg在win10上编译安装(配置libx264)
- 保存Simulink仿真模型为图片或者PDF的方法
- 数据挖掘-05
- Manchester city launch emotional intelligence scarf can be detected, give the fans
- 关于Retrofit网络请求URL中含有可变参数的处理
- 26. Pipeline parameter substitution command xargs
- 二叉树的序列化和反序列化
猜你喜欢
Resolved IndentationError: unindent does not match any oute r indentation Level
Do you know the difference between comments, keywords, and identifiers?
ansible-cmdb friendly display ansible collects host information
Common gadgets of Shell (sort, uniq, tr, cut)
MongoDB-查询中$all的用法介绍
Fragment中嵌套ViewPager数据空白页异常问题分析
ABAP interview questions: how to use the System CALL interface of the ABAP programming language, direct execution ABAP server operating System's shell command?
Scala Advanced (7): Collection Content Summary (Part 1)
Flutter入门进阶之旅(八)Button Widget
在北极都可以穿短袖了,温度飙升至32.5℃
随机推荐
ansible-cmdb友好展示ansible收集主机信息
MongoDB-查询中$all的用法介绍
Batch大小不一定是2的n次幂!ML资深学者最新结论
中科院打脸谷歌:普通电脑追上量子优越性,几小时搞定原本要一万年的计算...
新起之秀 DPU,正在掀起数据中心变革!
使用注解将EventBus封装抽取到基类
WebView注入Js代码实现大图自适应屏幕点击图片预览详情
#Internet of Things essay#Xiaoxiong pie equipment development actual combat
Flutter Getting Started and Advanced Tour (4) Text Input Widget TextField
苹果Meta都在冲的Pancake技术,中国VR团队YVR竟抢先交出产品答卷
API调用,API传参,面向对接开发,你真的会写接口文档吗?
AQS同步组件-FutureTask解析和用例
900页数学论文证明旋转的黑洞不会爆炸,丘成桐:30多年来广义相对论首次重大突破...
2022 Niu Ke Duo School (6) M. Z-Game on grid
Rust from entry to proficient 04 - data types
Two minutes recording can pass by second language!The volcano how to practice and become voice tone reproduction technology?
WeChat payment development process
Flutter入门进阶之旅(二)Hello Flutter
The latest interview summary in 20022 brought by Ali senior engineer is too fragrant
Flutter入门进阶之旅(七)GestureDetector