0

我有一个 html 文件,可以在模拟器中完美运行,但在部署的 Android 设备中不起作用。

这是我在具有 WebView 的布局的 XML 中的代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" android:background="@drawable/white_paper_complete">

<WebView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/wv_basicinfo" android:layout_gravity="left|center_vertical"/>
<TextView
        android:layout_width="209dp"
        android:layout_height="86dp"
        android:text="       BASIC INFORMATION"
        android:id="@+id/textView" android:textColor="@android:color/black" android:textSize="30dp"
        android:layout_gravity="center"/>
<ImageView
        android:layout_width="42dp"
        android:layout_height="45dp"
        android:id="@+id/imageView" android:layout_gravity="center" android:background="@drawable/loader"/>
</LinearLayout>

这是我在其类中的代码:

package com.example.ITax;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;


public class OpenBasicInfo extends MyActivity
{
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.basic_info);

    WebView wv_basic_info = (WebView) findViewById(R.id.wv_basicinfo);
    wv_basic_info.loadData(readTextFromResource(R.raw.basicinfo), "html", "utf-8");
}

private String readTextFromResource(int resourceID)
{
    InputStream raw = getResources().openRawResource(resourceID);
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    int i;

    try
    {
         i = raw.read();
        while(i != -1)
        {
            stream.write(i);
            i = raw.read() ;
        }
    }

    catch (IOException e)
    {
        e.printStackTrace();
    }

    return stream.toString();
}
}

我的 html 文件位于 res > raw > basicinfo.html

4

2 回答 2

0

是否启用了 GPU 渲染?启用 GPU 渲染时不支持 WebView(这可能仅适用于模拟器) http://developer.android.com/tools/devices/emulator.html#acceleration

注意:并非所有应用程序都与图形硬件加速兼容。特别是浏览器应用程序和使用 WebView 组件的应用程序不兼容图形加速。

于 2013-01-06T18:22:22.310 回答
0
wv_basic_info.loadData(readTextFromResource(R.raw.basicinfo), "text/html; charset=UTF-8", null);

这可以完美运行,尤其是在 Android 4.0 上,它显然忽略了 HTML 中的字符编码。

在 2.3 和 4.0.3 上测试。

于 2013-01-06T17:44:35.043 回答