【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】複数のカスタムテーマを設定で切り替える
背景色やアプリ全体のテーマ色を設定で変更したいという要望をもらったので実装してみました。
-
[android] ActivityとFragmentのライフサイクルいろいろ
Fragmentを使い始めてライフサイクル関係でハマることがあったので備忘録。 FragmentA
-
【android】リスト項目のmatch_parentが効かない
下記のようなリスト項目用のレイアウトを用意して、リストの右端にチェックボックスを置くようにしたのです
-
【android】リソースからいろいろ取得する
リソースで定義したいろいろをコード内で呼び出す方法です。 レイアウト //リソースからレ
-
【android】アプリのバージョン情報を取得する
int versionCode = -1; String versionName = &quo
-
【android】設定画面の作成
res/xml/preferences.xml <?xml version=&quo
-
【android】 APIバージョンによる動作の違い
「最近使用したアプリケーション」からの起動 2.x系 -> onNewIntentが呼ばれる 4
-
【android】標準の設定画面を作る
設定画面のテンプレートです。 検索一発クンのコードから抜粋しました。 チェックボックス、リス
-
[android] モンキーテスト(Monkey Test)を実行する
最近テストの効率化に目覚めました。 モンキーテストは猿にアプリを渡してみてめちゃくちゃな操作をさせ
-
アプリ間連携 Intentfiler
ブラウザの共有からURLを受け取る。 Manifest.xmlのURL受け取り先のactivity