无法从安卓系统发送所有图片到翩翩[关闭] 。

问题描述 投票:0回答:1
byte[] Renderer(String path)
  {
     File file = new File(path);
     byte [] byteArray=null;
     String ans="empty";
    try
    {

    for(int i=0;i<count;i++)
    {

      //code for converting pages to images
    }
     return byteArray;
    }
    catch(Exception e)
    {
      byte[] h=null;
    return h;
    } 
} 

我创建了一个Renderer方法,用于将10个页面转换为PNG图片并发送给main.dart,我只收到了最后一页,但我想在我的dart文件中显示所有页面。

flutter
1个回答
0
投票

在你的Java for 循环,处理每一页,但除了最后一页,其他都丢弃--你做了一个新的 byteArray 的每个页面。

一种解决方案是返回所有页面的列表。在Java中首先声明一个 ArrayList

ArrayList bitmaps = new ArrayList();

在for循环内,将压缩结果添加到列表中。

bitmaps.add(outStream.toByteArray());

最后,返回 bitmaps而不是 byteArray.

在Dart端,你现在会得到一个。List<Uint8List> 而非单一 Uint8List所以将方法的签名改为。

Future<List<Uint8List>> pdfAsset() async

很明显,你将不得不改变构建方法来处理一个位图列表(每页一个),而不是一个位图(最后一页)。

(你可能会发现你需要将签名改为 Future<List<dynamic>>但你会发现,他们每个人都是一个。Uint8List. 同时,将Java捕捉代码改为返回一个空列表)。)

© www.soinside.com 2019 - 2024. All rights reserved.