当前位置:网站首页>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
边栏推荐
- Fragment中嵌套ViewPager数据空白页异常问题分析
- MySQL 原理与优化,Group By 优化 技巧
- ansible-cmdb friendly display ansible collects host information
- Report: The number of students who want to learn AI has increased by 200%, and there are not enough teachers
- 链表噩梦之一?5000多字带你弄清它的来龙去脉
- GPT-3组合DALL·E,60秒内搞定游戏设定和原型动画!网友看后:这游戏想玩
- 已解决IndentationError: unindent does not match any oute r indentation Level
- 新起之秀 DPU,正在掀起数据中心变革!
- 8、IDEA提交代码出现: Fetch failed fatal: Could not read from remote repository
- WeChat payment development process
猜你喜欢
Flutter入门进阶之旅(二)Hello Flutter
Report: The number of students who want to learn AI has increased by 200%, and there are not enough teachers
Scala Advanced (7): Collection Content Summary (Part 1)
李开复花上千万投的缝纫机器人,团队出自大疆
Scala 高阶(七):集合内容汇总(上篇)
The latest interview summary in 20022 brought by Ali senior engineer is too fragrant
注释、关键字、标识符的区别你知道吗?
How to upload local file trial version in binary mode in ABAP report
The grep command Shell regular expressions, the three musketeers
链表噩梦之一?5000多字带你弄清它的来龙去脉
随机推荐
The batch size does not have to be a power of 2!The latest conclusions of senior ML scholars
AI basketball referee, walking is special, ask harden care don't care
Flutter入门进阶之旅(一)-初识Flutter
激光熔覆在农机修复强化中的应用及研究方向
API调用,API传参,面向对接开发,你真的会写接口文档吗?
The grep command Shell regular expressions, the three musketeers
ABAP 报表中如何以二进制方式上传本地文件试读版
罗振宇折戟创业板/ B站回应HR称用户是Loser/ 腾讯罗技年内合推云游戏掌机...今日更多新鲜事在此...
链表噩梦之一?5000多字带你弄清它的来龙去脉
Batch大小不一定是2的n次幂!ML资深学者最新结论
MongoDB-查询中$all的用法介绍
Compensation transaction and idempotency guarantee based on CAP components
Reading and writing after separation, performance were up 100%
用皮肤“听”音乐,网友戴上这款装备听音乐会:仿佛住在钢琴里
ERP不规范,同事两行泪 (转载非原创)
Simple understanding of ThreadLocal
Say goodbye to the AI era of hand looms
在已打开图片上加水印(文字)
Use RecyclerView to implement three-level collapsed list
ViewPager fragments of nested data blank page abnormal problem analysis