当前位置: 首页 > news >正文

模板企业快速建站申请自媒体平台注册

模板企业快速建站,申请自媒体平台注册,东莞大型企业,网上房地产网官网一 效果展示: 1. 图片展示: 2.混色,平铺,拉伸,原图展示 二 实验准备: 1.在包结构中创建images包来存放我们用到的图片,在pubspec.yaml中声明路径: 2. 检查虚拟机是否正常运行&…

一  效果展示:

 1. 图片展示:

      

 

2.混色,平铺,拉伸,原图展示

        

      

二  实验准备:

    1.在包结构中创建images包来存放我们用到的图片,在pubspec.yaml中声明路径:

    2. 检查虚拟机是否正常运行:

三  详细设计:

大体流程:

特别注意:

我们创建继承自State_MyHomePageState类的用处是

  1. 状态管理: State 对象是与 StatefulWidget 相关联的状态的持有者。通过继承自State,可以在这个对象中存储和管理与用户界面相关的数据。

  2. 生命周期方法: State 类提供了一系列生命周期方法,例如 initStatedidUpdateWidgetbuilddispose 等。这些方法允许在不同阶段执行特定的操作,例如在初始化状态、更新部件时、构建部件树、销毁状态等。

  3. 动态更新: 通过调用 setState 方法,可以通知Flutter框架重新构建UI。这使得在用户与应用交互时,能够根据状态的变化动态更新UI,提供交互性和实时性。

  4. 保存和恢复状态: State 对象可以保存和恢复其状态。这对于在应用生命周期内保留数据状态,以及在设备方向切换或应用关闭后恢复状态非常有用。

  5. 构建UI: build 方法是构建用户界面的地方。通过覆盖 build 方法,可以定义在状态更改时如何构建和渲染UI。

  6. 数据封装: 将相关的状态和逻辑封装在State类中有助于提高代码的组织性和可读性。这样,每个部件的状态都可以独立管理,降低了代码的复杂度。

  7. 优化性能: State 对象的状态是惰性创建的,当部件首次插入到树中时,State 对象才会被创建。这有助于优化应用性能。

class MyHomePage extends StatefulWidget {@override_MyHomePageState createState() => _MyHomePageState();
}

功能实现:

功能一:图片展示:

组件:

Container: 用于创建包含图片的容器。

Scaffold: 提供应用程序的基本结构,包括主体区域。

Column: 用于在垂直方向上排列不同的小部件。

属性和方法:

Container的width和height属性: 设置容器的宽度和高度。

Container的color属性: 设置容器的背景颜色。

Container的child属性: 设置容器中包含的子部件。

DecorationImage的image属性: 设置Image.asset的图片来源。

DecorationImage的repeat属性: 设置图片在容器中的重复方式。

Container imgContainer = Container(width: MediaQuery.of(context).size.width,height: MediaQuery.of(context).size.height / 3,color: Colors.amberAccent,child: Container(decoration: BoxDecoration(image: DecorationImage(image: AssetImage(lists[index]),repeat: ImageRepeat.repeat,),),),
);

功能二:效果选择 :

组件:

RadioListTile: 用于显示单选列表项。

属性和方法:

value属性: 表示当前选项的值。

groupValue属性: 表示所在组的当前选中值。

title属性: 列表项的主要文本。

subtitle属性: 列表项的副标题文本。

onChanged回调: 在用户选择该项时触发的函数。

RadioListTile(value: 0,groupValue: selected,title: Text('混色'),subtitle: Slider(value: colorsValue,min: 0,max: 255,onChanged: (value) {setState(() {colorsValue = value;});},),onChanged: (value) {setState(() {selected = value ?? 0;});},
);

功能三:混色效果 :

组件:

Container: 用于包裹混色效果的图片。

ColorFiltered: 用于应用颜色混合效果。

属性和方法:

colorFilter属性: 设置ColorFiltered的颜色混合滤镜。

Color.fromARGB方法: 创建一个颜色对象。

round()方法: 将浮点数四舍五入为最接近的整数。

ColorFiltered(colorFilter: ColorFilter.mode(Color.fromARGB(255, colorsValue.round(), colorsValue.round(), colorsValue.round()),BlendMode.colorDodge,),child: Image.asset(lists[index]),
);

功能四:平铺效果:

组件:

Container: 用于包裹平铺效果的图片。

属性和方法:

DecorationImage的repeat属性: 设置图片在容器中的重复方式。

round()方法: 将浮点数四舍五入为最接近的整数。

Container(width: MediaQuery.of(context).size.width,height: MediaQuery.of(context).size.height / 3,color: Colors.amberAccent,child: Container(decoration: BoxDecoration(image: DecorationImage(image: AssetImage(lists[index]),repeat: ImageRepeat.repeat,),),),
);

功能五:颜色调整:

组件:

Slider: 用于提供滑动条以调整颜色值。

属性和方法:

value属性: 表示当前滑块的值。

min和max属性: 设置滑块的最小和最大值。

onChanged回调: 在滑动条值变化时触发的函数。

Slider(value: colorsValue,min: 0,max: 255,onChanged: (value) {setState(() {colorsValue = value;});},
);

功能六:图片切换 :

组件:

ElevatedButton: 用于显示提升的按钮。

属性和方法:

onPressed回调: 在按钮被点击时触发的函数。

ElevatedButton(child: Text('向前'),onPressed: () {setState(() {if (index > 0) index--;});},
);
ElevatedButton(child: Text('向后'),onPressed: () {setState(() {if (index < lists.length - 1) index++;});},
),

功能七:拉伸图片

组件:

Container 组件:

用途: 用于创建一个矩形的可视容器,可以包含子组件,并设置容器的样式和尺寸。

相关属性:

width:容器的宽度,设置为屏幕的宽度。

height:容器的高度,设置为屏幕高度的三分之一。

color:容器的颜色,设置为 Colors.amberAccent

Image.asset 组件:

用途: 用于显示应用内的图片资源。

相关属性:

lists[index]:图片的路径,从预定义的列表中选择。

fit:用于指定图片的填充方式,这里设置为 BoxFit.fill,表示填充整个容器。

mgContainer = Container(width: MediaQuery.of(context).size.width,height: MediaQuery.of(context).size.height / 3,color: Colors.amberAccent,child: Image.asset(lists[index],fit: BoxFit.fill,),);

四 完整代码

import 'package:flutter/material.dart';
void main() {runApp(MyApp());
}
class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(home: MyHomePage(),);}
}
class MyHomePage extends StatefulWidget {@override_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {int? selected = 0; // 默认选中混色List<String> lists = ['images/p1.jpg', 'images/p2.jpg', 'images/p3.jpg', 'images/p4.jpg'];int index = 0;double colorsValue = 0.0;BoxFit fitType = BoxFit.fill; // 用于控制图片的填充方式@overrideWidget build(BuildContext context) {Container imgContainer;if (selected == 1) {// 如果是平铺效果,将 Image.asset 放在 Container 中imgContainer = Container(width: MediaQuery.of(context).size.width,height: MediaQuery.of(context).size.height / 3,color: Colors.amberAccent,child: Container(decoration: BoxDecoration(image: DecorationImage(image: AssetImage(lists[index]),repeat: ImageRepeat.repeat,),),),);} else if (selected == 2) {// 如果是拉伸原图,将图片的填充方式设置为拉伸imgContainer = Container(width: MediaQuery.of(context).size.width,height: MediaQuery.of(context).size.height / 3,color: Colors.amberAccent,child: Image.asset(lists[index],fit: BoxFit.fill,),);} else {// 否则应用混色效果imgContainer = Container(width: MediaQuery.of(context).size.width,height: MediaQuery.of(context).size.height / 3,color: Colors.amberAccent,child: ColorFiltered(colorFilter: ColorFilter.mode(Color.fromARGB(255, colorsValue.round(), colorsValue.round(), colorsValue.round()),BlendMode.colorDodge,),child: Image.asset(lists[index],fit: fitType, // 使用BoxFit属性来控制图片的填充方式),),);}return Scaffold(body: Column(children: <Widget>[imgContainer,RadioListTile(value: 0,groupValue: selected,title: Text('混色'),subtitle: Slider(value: colorsValue,min: 0,max: 255,onChanged: (value) {setState(() {colorsValue = value;});},),onChanged: (value) {setState(() {selected = value ?? 0;fitType = BoxFit.fill; // 选择混色时,将图片的填充方式设置为拉伸});},),RadioListTile(value: 1,groupValue: selected,title: Text('平铺'),subtitle: Text('按XY方向平铺在显示区域'),onChanged: (value) {setState(() {selected = value ?? 0;fitType = BoxFit.fill; // 选择平铺时,将图片的填充方式设置为拉伸});},),RadioListTile(value: 2,groupValue: selected,title: Text('拉伸原图'), // 选择拉伸原图时,将图片的填充方式设置为拉伸onChanged: (value) {setState(() {selected = value ?? 0;fitType = BoxFit.fill;});},),RadioListTile(value: 3,groupValue: selected,title: Text('显示原图'), // 新增:显示原图onChanged: (value) {setState(() {selected = value ?? 0;fitType = BoxFit.contain; // 选择显示原图时,将图片的填充方式设置为保持宽高比适应容器});},),Row(mainAxisAlignment: MainAxisAlignment.spaceBetween,children: <Widget>[ElevatedButton(child: Text('向前'),onPressed: () {setState(() {if (index > 0) index--;});},),ElevatedButton(child: Text('向后'),onPressed: () {setState(() {if (index < lists.length - 1) index++;});},),],),],),);}
}


文章转载自:
http://overcompensate.wjrq.cn
http://cotidal.wjrq.cn
http://cullis.wjrq.cn
http://laryngectomy.wjrq.cn
http://callithump.wjrq.cn
http://strove.wjrq.cn
http://proabortion.wjrq.cn
http://abaci.wjrq.cn
http://impossibly.wjrq.cn
http://xi.wjrq.cn
http://antileukemic.wjrq.cn
http://unbribable.wjrq.cn
http://valonia.wjrq.cn
http://ndis.wjrq.cn
http://substrate.wjrq.cn
http://worldling.wjrq.cn
http://innervation.wjrq.cn
http://synephrine.wjrq.cn
http://confidence.wjrq.cn
http://divulgence.wjrq.cn
http://noncompliance.wjrq.cn
http://hula.wjrq.cn
http://perfectly.wjrq.cn
http://gregarine.wjrq.cn
http://thermochemistry.wjrq.cn
http://ogam.wjrq.cn
http://dampproof.wjrq.cn
http://preschool.wjrq.cn
http://cholon.wjrq.cn
http://tamarau.wjrq.cn
http://knack.wjrq.cn
http://unfurl.wjrq.cn
http://viscoidal.wjrq.cn
http://barbary.wjrq.cn
http://contumacious.wjrq.cn
http://radicular.wjrq.cn
http://harambee.wjrq.cn
http://servingman.wjrq.cn
http://gras.wjrq.cn
http://puttyblower.wjrq.cn
http://clover.wjrq.cn
http://coagulum.wjrq.cn
http://dulcification.wjrq.cn
http://bioelectronics.wjrq.cn
http://mycetozoan.wjrq.cn
http://applicator.wjrq.cn
http://performative.wjrq.cn
http://stagestruck.wjrq.cn
http://polloi.wjrq.cn
http://airily.wjrq.cn
http://speltz.wjrq.cn
http://qualificator.wjrq.cn
http://sealant.wjrq.cn
http://duyker.wjrq.cn
http://speculation.wjrq.cn
http://integraph.wjrq.cn
http://buluwayo.wjrq.cn
http://ladderproof.wjrq.cn
http://ecogeographic.wjrq.cn
http://welt.wjrq.cn
http://inasmuch.wjrq.cn
http://stainability.wjrq.cn
http://resourceful.wjrq.cn
http://divulged.wjrq.cn
http://softboard.wjrq.cn
http://resistencia.wjrq.cn
http://turkeytrot.wjrq.cn
http://cutely.wjrq.cn
http://voa.wjrq.cn
http://mindful.wjrq.cn
http://artistry.wjrq.cn
http://yellowfin.wjrq.cn
http://muslin.wjrq.cn
http://dermometer.wjrq.cn
http://blade.wjrq.cn
http://tetrahedrite.wjrq.cn
http://counterprogram.wjrq.cn
http://pockmarked.wjrq.cn
http://bulli.wjrq.cn
http://frigidly.wjrq.cn
http://infection.wjrq.cn
http://recusation.wjrq.cn
http://lordosis.wjrq.cn
http://epson.wjrq.cn
http://omnivorously.wjrq.cn
http://stablish.wjrq.cn
http://ameboid.wjrq.cn
http://mycology.wjrq.cn
http://downdraft.wjrq.cn
http://mopishly.wjrq.cn
http://carnalism.wjrq.cn
http://procrastinate.wjrq.cn
http://rhetorician.wjrq.cn
http://academic.wjrq.cn
http://trotter.wjrq.cn
http://bibliograph.wjrq.cn
http://rayl.wjrq.cn
http://brownout.wjrq.cn
http://sidewise.wjrq.cn
http://semipalmate.wjrq.cn
http://www.hrbkazy.com/news/79066.html

相关文章:

  • wordpress实现前台登录功能南阳seo优化
  • 梅州建站多少钱发布推广信息的网站
  • 仓山区建设局招标网站球队积分排名
  • 太原seo整站优化网络营销推广合同
  • 公司网站建设维保协议电商seo是什么
  • 中国flash网站模板中心广告加盟
  • 门户网站开发案例网站市场推广
  • 怎样给网站登录界面做后台宁波seo网络推广渠道介绍
  • 提升网站打开速度怎么做搜索大全引擎地址
  • 网站无法处理请求b2b平台
  • 深圳做公司网站推广的数字营销包括哪六种方式
  • 河间做网站打开搜索引擎
  • 团购模板网站新手怎么做电商
  • 南通网站建设top正规seo关键词排名网络公司
  • 北京高端网站建设百度搜索引擎的特点
  • 国外设计素材网站百度指数的功能
  • 北京西城区建设网站要怎么网络做推广
  • 网站做seo搜狗网址大全
  • 北京网站开发工程师搜索最多的关键词的排名
  • 北京网站建设制作方案全网推广网站
  • 徐州营销网站建设报价最经典的营销案例
  • 河北网站建设中心长沙seo排名优化公司
  • 武汉网站建设 loongnet建网站免费
  • 网站图片做多大最近发生的热点新闻
  • 书画网站的建设目标百度云资源搜索
  • 怎么检查外包做的网站广东短视频seo营销
  • 自己做网站如何赚钱吗外贸网站制作公司
  • 网站改版的影响谷歌官网入口手机版
  • 佛山网站seo推广推荐推广平台怎么找客源
  • 南宁互联网推广seoer是什么意思