【问题标题】:Generate content to display on an ePaper display from Android App从 Android 应用程序生成要在 ePaper 显示器上显示的内容
【发布时间】:2017-01-23 22:59:03
【问题描述】:

这是我的一个自制项目。这个想法是有一个电子纸显示器来显示从安卓手机打开的电子书。电子纸之间的连接可以是有线的,也可以是无线的——这并不重要,因为我可以兼顾两者。 (我知道有类似的东西可用 - eInkCase,但是,嘿,我不想买它)。

ePaper 可以采用二进制格式,该格式基本上是来自位图的下采样图片。我已经完成了转换,并通过硬编码几页的文本内容测试了在其上显示一本书的一些页面。

现在最困难的部分是显示在 Android 手机上阅读的电子书。我的目标电子书格式首先是 ePub。我研究了一些应用程序并了解 WebView 用于显示内容。

我的问题是:

  • 获取 WebView 的文本内容以使用一些 JavaScript 生成等效的位图是否明智?

  • 有没有其他方式获取WebView的内容?

非常感谢任何帮助。

【问题讨论】:

    标签: android webview bitmap epub


    【解决方案1】:

    您如何从 ePaper 获取数据?你能把它转换成字符串吗?

    您可以生成动态字符串来创建临时 html 文件并在运行时加载它。例如代码

    <WebView
                    android:id="@+id/WebViewToDisplay"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_gravity="center"
                    android:fadeScrollbars="false" />
    

    将数据加载到 WebView 中

    WebView webViewDisplay;
    StringBuffer LoadWEb1;
    
    webViewDisplay = (WebView) findViewById(R.id.WebViewToDisplay);
    LoadWEb1 = new StringBuffer();
    LoadWEb1.append("<html><body><h1>My First Heading</h1><p>My first paragraph.</p>");
    //Sample code to read parameters at run time
    String strName = "Test Paragraph";
    LoadWEb1.append("<br/><p>"+strName+"</p>");
    String result = LoadWEb1.append("</body></html>").toString();
            WebSettings webSettings = webViewDisplay.getSettings();
            webSettings.setJavaScriptEnabled(true);
            webViewDisplay.getSettings().setBuiltInZoomControls(true);
            if (android.os.Build.VERSION.SDK_INT >= 11){
                webViewDisplay.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
                webViewDisplay.getSettings().setDisplayZoomControls(false);
            }
    
            webViewDisplay.loadDataWithBaseURL(null, result, "text/html", "utf-8",
                    null);
            //To load local file directly from assets folder use below code
            //webViewDisplay.loadUrl("file:///android_asset/aboutapp.html");
    

    【讨论】:

    • 感谢您的回复。也许我在上面的描述中并不清楚。我需要做的是与你刚才描述的相反。我想将数据发送到电子纸。我是否正确理解这不是示例代码正在尝试做的事情?
    猜你喜欢
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    相关资源
    最近更新 更多