Android从布局引擎生成图像的最佳方式(对齐文本,框定位,嵌入图像......)

时间:2014-03-12 14:43:30

标签: android layout webview png

我正在寻找(和测试)可以从文本内容执行图像生成的库。我使用增强现实Metaio SDK Android 上开发了一款应用。要应用包含文本和图片嵌入的纹理,我必须生成PNG文件。所以我需要一个方法:

  • Android
  • 兼容
  • 在Android 客户端上:不在服务器上生成PNG
  • 使用正确的方式,例如html / css,svg或Android布局:即不必从头开始对齐文本和框定位,我相信你明白为什么x)
  • 哪个可以在外部线程中执行生成(即,用户不必看到布局)

我测试了很多解决方案,但没有任何效果。

使用WebView

关于此的一些主题:

最终, onPageFinished 是不够的,我们必须实现:

webView.setPictureListener(new PictureListener()
{
    @Override
    public void onNewPicture(WebView view, Picture picture)
    {
        [...]

它有效,但已弃用,如果我想生成一个png,那么 WebView 必须是可见的,并且它不适合我。

使用Android版面

关于此的一些主题:

我必须再次使用可见视图从中生成PNG。

使用svg-android

关于此的一些主题:

它有效,但只有基本功能:包含文本图像数据 - uri图像 不起作用

使用Batik

SVG Rasterizerits use

它有效,但不适用于Android。

  

转换为Dalvik格式失败,错误1

1 个答案:

答案 0 :(得分:0)

我终于成功使用了WebView 而无需查看视图。我将宽度设置为0.1dp并快速切换可见/不可见

我使用 WebView ,因为布局引擎更完整。 但警告:如上所述,不推荐使用方法 onNewPicture

我实现了一个包含 GenerationProcess 的类,它执行所有线程处理(在 UI线程背景线程上)和< strong> GenerationQueue ,执行线程排序。所以这个课程完全独立,你可以使用它,而不必考虑你的线程。

使用 Android布局引擎,我们不必使用所有这些线程,因为没有像onPageFinished和onNewPicture这样的回调函数:做出选择!

Github Project - WebView2Img

你可以看看:

然后你可以扩展页面来操作DOM(例如jdom)来动态设置内容并保存html文件。

编辑: here在生成之前使用dom操作扩展Page的示例