【问题标题】:Flutter (Dart) to Android - Pass ImageFlutter (Dart) 到 Android - 传递图像
【发布时间】:2020-04-01 11:26:53
【问题描述】:
final ByteData bytes = await rootBundle.load('assets/images/1/image.jpg');

我通过上面的代码读取了 dart 中的图像。
通过 Platform Channel,Java 只接受 byte[]

所以,我必须将图像发送为Unit8Lists

final ByteData bytes = await rootBundle.load('assets/images/1/image.jpg');
bytes.buffer.asUint8List()

在android studio中收到bytes后,如何再次将其转换为Uri?所以我可以使用android意图的EXTRA_STREAM来分享图片

try {
      await platformMethodChannel.invokeMethod('passImage', {
        'image': bytes.buffer.asUint8List(),
        'type': 'image/jpeg',
        'name': 'image.jpg'
      });
    } on PlatformException catch (e) {
      print(e);
    }

MainActivity.java

byte[] image = call.argument("image");
//How to convert this byte[] to Uri?

【问题讨论】:

    标签: java android flutter dart


    【解决方案1】:

    这取决于字节数组的内容。

    假设您的字节数组是 URI 字符,您可以使用以下代码:

    byte [] image = <your byte array>;
    String s = new String(image, "UTF-8");
    Uri uri = Uri.parse(s);
    

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2020-09-09
      • 1970-01-01
      • 2021-04-27
      相关资源
      最近更新 更多