【android】 webviewでassetsのリソースを使用する
公開日:
:
android
webviewでassets内のリソースにアクセスするには
file:///android_asset/assets内のファイルパス
のように書いて、assetsフォルダ内にはフォルダ、ファイルを配置します。
1.ページ全体を読む場合
webView.loadUrl(getString(R.string.my_html));
2.imgなどのsrcで使用する場合
こちらはロードする際はこつが必要で下記のように書く必要があります。
String html = "<html><body><img src=\"file:///android_asset/html/photo.png\"</img></body></html>"; String mimeType = "text/html"; String encoding = "utf-8"; webView.loadDataWithBaseURL("http://not/needed", html, mimeType, encoding, "");
それでも表示してくれない(泣)
と、ここまではググればでてくるのですが、自分の環境ではどうやっても表示してくれない。
原因は「ライブラリ内のassetsは参照できない」というところにありました。
下記の場合、Aの中でloadしていてもBのassetsにリソースを置かないと参照してくれませんでした。
プロジェクトA(as library)
↑
↑(参照)
↑
プロジェクトB(本体)
裏がとれました
原因が分かって調べなおすとちゃんとドキュメント化されてますた。
Android Developer
[Library Projects] -> [Library projects cannot include raw assets]
以上
関連記事
-
-
【android】 Android4.1のserviceでdefaultPreferenceがおかしい
【現象】 ActivityでdefaultPreferencesで保存したデータがservice内
-
-
【android】stringsリソースにパラメータを埋め込む
●strings.xml %n$x n : 引数に渡す際の順番。n番目の引数。 x
-
-
【android】言語・地域設定の取得
androidでは利用する言語と国名がjava.util.Localeのオブジェクトとして設定されて
-
-
【android】処理時間を計測する
パフォーマンスのリファクタリングを行うには処理時間の計測がかかせません。 SDK標準のクラスを使っ
-
-
【android】IMEの表示/非表示
//IMEを閉じる InputMethodManager inputMethodManager
-
-
【android】オーバーレイでトップレイヤーにViewを表示する
常にホーム画面や他のアプリより前面にViewを表示する方法です。 前面に透明のViewGroupを
-
-
【android】 adbコマンド集
●adbサービス起動 adb start-server ●adbサービス終了 adb
-
-
【android】ホーム画面や他のアプリの前面にViewを表示する。
WindowManagerのTYPE_SYSTEM_ALERTのレイヤーにViewを表示することで、
-
-
【andoid】ViewPagerを使う
1. layout.xmlにViewPagerを配置 2. PagerAdapter.jav