美文网首页
5.flutter-图片控件

5.flutter-图片控件

作者: aofeilin | 来源:发表于2022-08-03 13:23 被阅读0次
截屏2022-08-03 15.14.17.png 图像 2.gif
import 'dart:ui';
import 'dart:io';

import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';

import 'package:transparent_image/transparent_image.dart';

class ZFLImageXieChengPage extends StatefulWidget {
  @override
  _ZFLImageXieChengPageState createState() => _ZFLImageXieChengPageState();
}

class _ZFLImageXieChengPageState extends State<ZFLImageXieChengPage> {
  bool isPermission = false;

  @override
  Widget build(BuildContext context) {
    return Container(
        child: Column(
      children: [
        networkImage(),
        assetImage(),
        assetImage2(),
        setPhoto(),
        fadeImage(),
        fadeImage2(),
        Expanded(child: cacheImage())
      ],
    ));
  }

//网络图片
  networkImage() {
    return Image.network('http://www.devio.org/img/avatar.png');
  }

//静态图片
  assetImage() {
    return Container(
        width: 80,
        height: 80,
        decoration: BoxDecoration(
          image: DecorationImage(
              image: AssetImage('assets/images/icon_detail.png')),
        ));

//    return Container(
//        width: 20,
//        height: 20,
//        decoration: BoxDecoration(
//          image: DecorationImage(
//              image: NetworkImage('http://www.devio.org/img/avatar.png')),
//        ));
//    return AssetImage('assets/images/icon_detail.png');
  }

//静态图片
  assetImage2() {
    return Image.asset(
      'assets/images/icon_detail.png',
      width: 80,
      height: 80,
    );
  }

   // 需要Android-app-src-androidmainfest.xml中 配置权限
//    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//    <application android:requestLegacyExternalStorage="true"
//加载本地图片 手机中的图片
//  #权限管理
//  permission_handler: ^5.0.1+2
  setPermission() async {
    if (await Permission.storage.request().isGranted) {
      //判断是否授权,没有授权会发起授权
      print("获得了授权");
      isPermission = true;
      setState(() {
        setPhoto();
      });
    } else {
      print("没有获得授权");
      isPermission = false;
    }
  }

  setPhoto() {
    if (isPermission) {
      print("有授权");
      return Center(
          child: (Image.file(File('/storage/emulated/0/Download/test.jpg'),
              width: 80, height: 80)));
    } else {
      print("申请授权");
      setPermission();
      return null;
    }
  }

  //kTransparentImage 占位符 导入  transparent_image: ^2.0.0
  //设置placeholder 占位符
  fadeImage() {
    return Stack(
      children: [
//        Center(child: CircularProgressIndicator(),),
        Center(
          child: FadeInImage.memoryNetwork(
            placeholder: kTransparentImage,
            width: 80,
            height: 80,
            image:
                "http://t11.baidu.com/it/u=975244027,1224419617&fm=58&app=83&f=JPEG?w=250&h=250",
          ),
        )
      ],
    );
  }

  //这里的placeholder,默认显示的图片。
  fadeImage2() {
    return Stack(
      children: [
//        Center(child: CircularProgressIndicator(),),
        Center(
          child: FadeInImage.assetNetwork(
            placeholder: 'assets/images/appbar_normal_bg.png',
            width: 80,
            height: 80,
            image:
                "http://t11.baidu.com/it/u=975244027,1224419617&fm=58&app=83&f=JPEG?w=250&h=250",
          ),
        )
      ],
    );
  }

  //图片缓存
//  cached_network_image: ^2.0.0-rc
  cacheImage() {
    return Center(
      child: CachedNetworkImage(
        width: 80,
        height: 80,
        placeholder: (context, url) => CircularProgressIndicator(),
        imageUrl:
            'http://t10.baidu.com/it/u=1995885605,1860079861&fm=58&app=83&f=JPEG?w=250&h=250',
      ),
    );
  }
}

相关文章

  • 5.flutter-图片控件

  • UIImageView

    图片控件 1` 创建图片控件实例 self.imageview = [[UIImageView alloc]ini...

  • IOS -- cell解决重用机制

    类似微博自定义cell添加图片,通常会导致图片重用 解决方法:手动懒加载图片控件,然后在加载图片之前先清除图片控件...

  • Flutter Image.asset Mapping valu

    Image控件即为图片控件。Image控件有多种构造函数: new Image,用于从ImageProvider获...

  • 06iOS图片轮播控件-version0.1

    为何要再写图片轮播控件 当然图片轮播控件这种东西真是被写烂了,这里再写一次的原因有三点:一是目前已知的图片轮播控件...

  • 05图片轮播控件开发文档

    为何要再写图片轮播控件 当然图片轮播控件这种东西真是被写烂了,这里再写一次的原因有三点:一是目前已知的图片轮播控件...

  • 03-Windows基础控件二

    一、图片框PictureBox控件 用于在窗体的指定位置显示图片,其为不可编辑的控件,无法获得焦点。 图片框Pic...

  • 图片

    手势图片控件 PinchImageView 点击图片框架 photoView packagecom.example...

  • vue使用vant上传单张和多张图片,自定义图片参数

    页面基于vue开发,使用vant控件van-uploader上传图片。因控件位于多重list中,为方便上传图片后保...

  • 圆形图片控件

    implementation 'com.makeramen:roundedimageview:2.3.0' and...

网友评论

      本文标题:5.flutter-图片控件

      本文链接:https://www.haomeiwen.com/subject/bbodwrtx.html