Вопрос по html, android – Android - добавление изображения в html webview

3

Итак, изображение, которое я использую, называется test.png, и у меня есть класс java (Cherry.java) и класс xml (cherry.xml). Кроме того, у меня есть файл html в папке / res / raw с именем htmltest.html. , То, что я пытаюсь сделать, - это когда пользователь нажимает кнопку на предыдущей странице, а затем переносит их в cherry.xml, все это веб-просмотр. Теперь в java-классе он просто открывает файл htmltest, а в html-файле это просто обычный веб-макет. Я хочу отобразить изображения в html-файле, чтобы изображение находилось в папке для рисования или что-то в этом роде без необходимости использования Интернета. (не хочу, чтобы использовалось интернет-разрешение). Ниже приведен код для 3 файлов, которые у меня есть.

cherry.xml

<WebView 
    android:id="@+id/webviewHelp"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"  />

Cherry.java

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class Cherry extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cherry);

        WebView webview = (WebView) findViewById(R.id.webviewHelp);
        webview.loadData(readTextFromResource(R.raw.htmltest), "text/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();
        }
        raw.close();
         }
         catch (IOException e)
         {
        e.printStackTrace();
         }
        return stream.toString();
    }



}

htmltest.html

<html>
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

<h2>Pictures</h2>
<img border="0" src="file:///android_drawable/test.png" alt="nothing" width="304" height="228" />

</body>
</html>

Остальные вопросы просто задайте, и я отвечу как можно быстрее. Все работает нормально, только изображения, которые я не могу отобразить.

Android 2.2 API 8 - это то, что это работает Pie
Пожалуйста, убедитесь, что ваше изображение и HTML-файл находятся в одной папке. Если изображение не отображается и ссылка на источник изображения правильно, попробуйте преобразовать ваше изображение вx64base Tai Tran

Ваш Ответ

4   ответа
8

Теперь поместите ваш HTML, изображение и т. Д. В папку «Ресурсы». И используйте следующий код.

Cherry.java

WebView webview = (WebView) findViewById(R.id.abtus_webView);
webview.loadUrl("file:///android_asset/index.html");

htmltest.html

<img src="images/abc.png">

Я поместил изображения в папку изображений в папке Assets. Это работает для меня правильно, я надеюсь, что это поможет вам.

В моем случае путь изображения в динамическом html - это /images/abc.png. Но это не проявляется. как этого добиться, если / на пути впереди @Varma
2

assets/www

затем поместите ваш HTML, изображение и т. д. вwww папка. И используйте следующий код.

Cherry.java

webview.loadUrl("file:///android_asset/www/htmltest.html");

htmltest.html

<img border="0" src="../res/drawable-hdpi/test.png" alt="nothing" width="304" height="228" />
это фигня ..
кажется, не работает
1

Объяснил здесь: http://dean.edwards.name/my/base64-ie.html

1

От:

file:///android_drawable/test.png

Для того, чтобы:

file:///android_res/drawable/test.png

Похожие вопросы