flutter背景图片设置

本地图片设置

1、在配置文件pubspec.yaml中,设置以下代码

assets:
    - assets/
    - assets/test/

2、如果目录中没有assets文件夹,则创建一个文件夹,并且取名为assets,在此文件夹中存放图片资源即可,如果想分文件夹管理,在assets目录下创建文件夹,并且在配置文件pubspec.yaml中加入路径即可
在这里插入图片描述

3、图片的使用、在界面文件中,有的需要设置图片大小,目前给出三种方式
(1)使用Container容器,对子类图片进行控制

Container(
   margin: EdgeInsets.only(right: 20, left: 10),
   width: 81,
   height: 64,
   child: Image.asset("assets/login/select.png"),
   )

(2)使用SizedBox容器,对子类图片进行控制

SizedBox(
   width: 81,
   height: 64,
   child: Image.asset("assets/login/select.png"),
   )

(3)使用Image组件,可以对图片进行颜色设置,大小控制

Image(
   width: 81,
   height: 64,
   image: AssetImage("assets/login/select.png"),
   )

背景设置

1、容器背景设置
容器的背景设置,只有Container容器可以设置背景,SizedBox是不行的,其他的应该也有的,目前就还没有用上。以下代码就是对容器增加背景图片。一般设置了image的话,可以不设置color。

Container(
   height: 327.w,
    width: double.infinity,
    child: _titleHeadhall(),//自定义的组件,背景之上的
    decoration: BoxDecoration(
      image: DecorationImage(
          image: AssetImage("assets/common/bg_home.png"),
          fit: BoxFit.fill),
    ),
  )

2、按钮背景设置
这种方式,只能修改按钮的颜色,貌似是不能增加图片的,有大佬知道的话,可以留言告知一下,谢谢。

ElevatedButton(
     onPressed:  () {//按钮点击事件
            },
      child: Text("保存"),  //按钮显示文字
      style: ButtonStyle(
        backgroundColor: MaterialStatePropertyAll(Colors.orange),//颜色值
        shape: MaterialStateProperty.all(
          RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(10), // 圆角半径,四个角的弧度
          ),
        ),
      ),
    )

(1)按钮不可以点击
在flutter4中,没有了isenable的值,我们使用另外一种方式,将按钮的点击事件设置为null,及可以使按钮不可以点击

ElevatedButton(
     onPressed: null,
      child: Text("保存"),
      style: ButtonStyle(
        backgroundColor: MaterialStatePropertyAll(Colors.orange),//颜色值
        shape: MaterialStateProperty.all(
          RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(10), // 圆角半径,四个角的弧度
          ),
        ),
      ),
    )

可以设置图片的按钮

这是一种类似按钮的组件,可以进行点击响应事件,和按钮的不同,就是没有点击响应动画,不过这些都是可以自己添加的。

GestureDetector(
    onTap: () {},//点击响应事件
      child: Container(
	  	height: 327.w,
	    width: double.infinity,
	    child: _titleHeadhall(),//自定义的组件,背景之上的
	    decoration: BoxDecoration(
	      image: DecorationImage(
	          image: AssetImage("assets/common/bg_home.png"),//容器的背景图片
	          fit: BoxFit.fill),
	    ),
	  ),
    )
### 如何在 Flutter设置背景图片Flutter 中,可以通过 `Container` 或者 `DecoratedBox` 来设置背景图片。通常情况下,会使用 `DecorationImage` 配合 `BoxDecoration` 实现这一需求。下面提供一个完整的示例代码来展示如何在 Flutter设置背景图片。 #### 示例代码 以下是通过 `Container` 设置背景图片的一个简单例子: ```dart import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text('Background Image Example')), body: Center( child: MyBackgroundWidget(), ), ), ); } } class MyBackgroundWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Container( decoration: BoxDecoration( image: DecorationImage( image: AssetImage('images/background_image.jpg'), // 背景图片路径 fit: BoxFit.cover, // 图片填充方式 ), ), child: Center( child: Text( "This is a background image example.", style: TextStyle(fontSize: 20, color: Colors.white), ), ), ); } } ``` 在这个示例中,我们使用了 `AssetImage` 加载本地图片作为背景[^1]。需要注意的是,图片路径 `'images/background_image.jpg'` 必须存在于项目目录下的 `assets/images/` 文件夹中,并且需要在 `pubspec.yaml` 文件中声明该资源文件的位置。 #### 关键点解析 - **图片加载**:上述代码中的 `image: AssetImage('images/background_image.jpg')` 表明了如何加载本地图片资源。这与引用中提到的 `Image.asset` 类似,都需要确保图片已正确定义并放置于指定位置。 - **图片适配模式**:`fit: BoxFit.cover` 定义了图片如何适应容器尺寸。常见的选项有 `cover`, `contain`, 和 `fill` 等。 - **样式调整**:为了使文字更清晰可见,可以在文本样式中定义颜色为白色或其他对比明显的颜色。 #### 注意事项 如果希望动态加载网络图片,则可以替换 `AssetImage` 为 `NetworkImage`,如下所示: ```dart decoration: BoxDecoration( image: DecorationImage( image: NetworkImage('https://example.com/image.jpg'), fit: BoxFit.cover, ), ), ``` 这种做法适用于从远程服务器获取图片的情况。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gxy_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值