お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

Android Tips:assetsフォルダ内のhtmlファイルからSDカードの画像を参照する

どーも。ブンブン丸です。
とあるアプリを作っていた時のこと。
そのアプリはassetsフォルダに入れたHTMLファイルをwebviewを使って参照することがあり、当然、画像もassetsの中に入れていました。
しかーし、なんと、画像はSDカードの中にある物を参照する仕様だったのです!

はぁ、困った。ぐぐる。
意外と情報がない。
出ている情報と言えばassetsフォルダの画像を参照するとか、SDカードの画像を参照するとか。

・・
・・・
ふと気付く。

アホな自分に気付く。

なんてことはない、assetsフォルダのhtml内のimgタグはfile:///~で参照すれば良いだけでしたorz=3
結局、以下のように解決しました。

//内部SDカードのパスを取得とかして事前処理
File path = Environment.getExternalStorageDirectory();
dataInstallPath = getString(R.string.DataInstallPath);
install_path = path.getName()+dataInstallPath;

// WebViewClientクラスを継承したカスタムWebView
private class CustomWebView extends WebViewClient {
            @Override
            public void onPageFinished(WebView view, String url) {
// HTML内に埋め込まれている「setFileName()」関数を呼び出す
 webView.loadUrl("javascript:setFileName('file:///"+install_path+filename+"')");
   }
 } 

・assets内のHTMLファイルはJavascriptでタグを生成する

<script type="text/javascript">
function setFileName(str){
	var filename=str;
document.open();
document.write("<body>");
document.write("<img src='"+filename+"' width='300' height='300' >");
document.write("</body>");
document.close();
}
</script> 

おしまい。

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00