1

この単純なコードに問題があります。Web から画像をダウンロードし、ローカルに保存します。

               File mFile = new File(context.getFilesDir(), "a.png");
               if(!mFile.exists()) {         mFile.createNewFile();                }
               FileOutputStream fos = new FileOutputStream(mFile);
               fos.write(baf.toByteArray());
               fos.flush();
               fos.close();

この画像を ImageView に表示しようとしましたが、機能しています。今、保存した画像を WebView に表示しようとしています。

  String data = "<body>" +"<img src=\"a.png\"/></body>";
  webview.loadDataWithBaseURL(getActivity().getFilesDir().toString(),data , "text/html", "utf-8",null);

機能していません。webview には何も表示されません。/assets に入れた png で webview を試してみましたが、うまくいきました。

String データ内のファイルを指す構文が間違っていると思いますが、よくわかりません。

どんな助けでも感謝します。

ありがとう。

アレックス。

4

2 に答える 2

1

OK、さまざまなことをテストした後、この作業コードに行き着きました。

    WebView webview = (WebView) view.findViewById(R.id.imageView);      

    try {
        FileInputStream in = getActivity().openFileInput("image_behindfragment.png");
        BufferedInputStream buf = new BufferedInputStream(in);
        byte[] bitMapA= new byte[buf.available()];
        buf.read(bitMapA);
        Bitmap bM = BitmapFactory.decodeByteArray(bitMapA, 0, bitMapA.length);
        //imageview.setImageBitmap(bM);
        if (in != null) {
        in.close();
        }
        if (buf != null) {
        buf.close();

        String imgToString = Base64.encodeToString(bitMapA,Base64.DEFAULT);
        String imgTag = "<img src='data:image/png;base64," + imgToString               
                + "' align='left' bgcolor='ff0000'/>"; 
        webview.getSettings().setBuiltInZoomControls(true);

        webview.setInitialScale(30);
        WebSettings webSettings = webview.getSettings();
        webSettings.setUseWideViewPort(true);


        webview.loadData(imgTag, "text/html", "utf-8");

        }
    } catch (Exception e) {
        e.printStackTrace();
    }
于 2012-12-28T18:35:51.567 に答える
0
String base = Environment.getExternalStorageDirectory().getAbsolutePath().toString();
String imagePath = "file://"+ base + "/a.png";
String html = "<html><head></head><body><img src=\""+ imagePath + "\"></body></html>";
WebView.loadDataWithBaseURL("file:///mnt/sdcard/Your Folder/", html, "text/html","utf-8", "");
于 2012-12-23T18:43:21.240 に答える