2013-10-22 40 views
3

我的几个时间轴项目设计需要多个图像,但我很难可靠地连接它们。 timeline.insert函数似乎只允许在插入时间轴项目后插入一个附件并插入附件,有时会导致图像不被渲染。什么是附加多个图像的最佳方式?

我也尝试在时间线项目本身上使用setAttachments,但它似乎并没有实际上传插入项目时的附件。使用下面的代码我倾向于得到混合的结果。有时会起作用,有时候它无法呈现图像。似乎与收到它后等待查看通知的时间有多长时间的关联,如果我查看它太快,它将无法完全呈现。

有没有人有任何想法或建议,我怎么能克服这个或看到我做错了什么?

//CardFactory.java - Create TimelineItem with attachment list 
public static TimelineItem getConceptCard(String conceptImage) { 
    TimelineItem timelineItem = new TimelineItem(); 
    timelineItem.setHtml("<article class=\"photo\">\n <img src=\"attachment:0\" width=\"100%\" height=\"100%\">\n <div class=\"photo-overlay\"/>\n <section>\n <p class=\"text-auto-size\">Test</p>\n </section>\n</article>\n"); 
    List<Attachment> attachments = new ArrayList<Attachment>(); 
    Attachment img1 = new Attachment(); 
    img1.setId("backImage"); 
    img1.setContentType("image/jpeg"); 
    img1.setContentUrl(WebUtil.buildStaticImgUrl("cardconcepts/" + conceptImage + ".JPG")); 
    attachments.add(img1); 
    timelineItem.setAttachments(attachments); 
    timelineItem.setNotification(new NotificationConfig().setLevel("DEFAULT")); 
    return timelineItem; 
} 




//MainServlet.java - Send TimelineItem on button press 
} else if (req.getParameter("operation").equals("insertConceptCard")) { 
    TimelineItem timelineItem = CardFactory.getConceptCard(req.getParameter("conceptCard")); 
    MirrorClient.insertTimelineCard(credential, timelineItem); 




//MirrorClient.java - Insert TimelineItem with multiple attachments 
public static void insertTimelineCard(Credential credential, TimelineItem item) throws IOException { 
    Mirror.Timeline timeline = getMirror(credential).timeline(); 
    TimelineItem timelineItem = timeline.insert(item).execute(); 
    for(Attachment TAttach : item.getAttachments()){ 
     InputStreamContent mediaContent = new InputStreamContent(TAttach.getContentType(), new URL(TAttach.getContentUrl()).openStream()); 
     timeline.attachments().insert(timelineItem.getId(), mediaContent).execute(); 
    } 

回答

0

我不知道是否有可能给您的要求,但如果附件是公众形象,你实际上并不需要连接它们。您可以使用正常http URL的img标签。我的经验是,这些获取速度相当快,如果经常使用它们,就会被缓存,即使它们没有立即渲染,也会正确渲染。 (即使你的需求需要保持这些更私密,你可能希望使用标准的图像获取与某种nonce,而不是试图附加他们。我意识到这并不完全回答你的问题,但它可能会是一个有用的解决方法。)

相关问题