image - flutter 文本上的纹理(图像)

标签 image text flutter textures foreground

有没有办法在 Flutter 中将图像(纹理)放在文本上?

喜欢下图

enter image description here

最佳答案

在文本上绘制图像的操作是异步的,因为它等待图像加载并在 TextStyle 的前景着色器上设置它。

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'dart:async';
import 'dart:typed_data';
import 'dart:ui' as ui;

String textureName = "images/texture.jpg";
 Future<TextStyle> textureText(TextStyle textStyle,
    ) async {
  ui.Image img;
  img = await ImageLoader.load(textureName);
  Float64List matrix4 = new Matrix4.identity().storage;
  return textStyle.copyWith(
      foreground: Paint1()
        ..shader = ImageShader(img, TileMode.mirror, TileMode.mirror, matrix4));
}

下面,FutureBuilder 调用 textureText 并使用返回的 TextStyle

  Widget tt = new FutureBuilder<TextStyle>(
    future: texturedText(
        TextStyle(fontSize: 70.0,), // a Future<String> or null
    builder: (BuildContext context, AsyncSnapshot<TextStyle> snapshot) {
      switch (snapshot.connectionState) {
        case ConnectionState.waiting:
          return new Text('Awaiting result...');
        default:
          if (snapshot.hasError)
            return new Text('Error: ${snapshot.error}');
          else
            return new Text(
              'TEXTURE',
              style: snapshot.data,
            );
      }
    },
  );

您可以像普通小部件一样使用 tt (texturedText)。

A complete example也可以在这个 repo .

关于image - flutter 文本上的纹理(图像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066476/

相关文章:

python - Python向数据库添加字符串后字母错误

css - css中的垂直文本高度

dart - 如何使用 Dart 检测 Flutter 字符串中的表情符号?

php - 将 base64 编码的图像存储在数据库中是否明智?

image - 缩放后 PNG 图像看起来很模糊

javascript - 我尝试使用 Bootstrap 通过单击图像来实现模式,但它不起作用

css - Flex - 文本颜色的可见阴影

flutter - 如何在Flutter中实现 `breakpoints`来逐行检查响应?

asynchronous - 获取方法 Future<T> 的结果 flutter

javascript - html 5 计数器的 drop 功能