代码之家  ›  专栏  ›  技术社区  ›  nhoxbypass

用itext在标签中加载在线图像

  •  0
  • nhoxbypass  · 技术社区  · 7 年前

    XMLWorker 在itextpdf库中,将xHTML转换为pdf。

    如:

    <img src="https://www.w3schools.com/images/w3schools_green.jpg" alt="W3Schools.com" style="width:104px;height:142px;"/>
    

    通过本地图像,我实现了 ImageProvider

    Image retrieve(String src) NetworkOnMainThread 例外 我不知道如何使用AsyncTask或任何其他WAR加载在线图像并将其返回内部

    我在网上搜索过,人们只使用 图像提供者 使用本地图像。有什么想法吗?

    2 回复  |  直到 7 年前
        1
  •  0
  •   nhp    7 年前

    如果没有语境,我真的不理解你的问题。这可能符合你的问题。

    在内部创建回调 ImageProvider AsyncTask (或任何有助于你提出请求的东西)给出响应,触发它。

    public class ImageProvider {
    private OnImageProviderCallback callback;
    
    public ImageProvider(OnImageProviderCallback callback) {
        this.callback = callback;
    }
    
    public OnImageProviderCallback getCallback() {
        return callback;
    }
    
    public void setCallback(OnImageProviderCallback callback) {
        this.callback = callback;
    }
    
    public interface OnImageProviderCallback {
        void onRetrievedImage(Image image);
    }
    
    public void retrive() {
        new AsyncTask<Void, Void, Image>() {
            @Override
            protected Image doInBackground(Void... voids) {
                // request for image here
                If(request.success()) {
                    return request.getImage();
                }else{
                    // Handle error
                    return null;
                }
            }
    
            @Override
            protected void onPostExecute(Image image) {
                super.onPostExecute(image);
                callback.onRetrievedImage(image);
            }
        }.execute();
    }
    }
    

    然后在你的 activity ,通过调用此

    new ImageProvider(new ImageProvider.OnImageProviderCallback() {
            @Override
            public void onRetrievedImage(Image image) {
                // do something with your image
            }
        });
    
        2
  •  0
  •   nhoxbypass    6 年前

    目前这是可行的,但代码有点难看,因为它会导致代码耦合,并且很难在以后扩展以支持其他转换类型。