WebViewにリソースの画像を使用してHTML上に表示させる方法
package com.example.test.test39;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.RelativeLayout;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
RelativeLayout layout = new RelativeLayout(this);
setContentView(layout);
//座標の初期設定
int x=0;
int y=50;
int width=430;
int height=700;
RelativeLayout.LayoutParams obj1 = getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
WebView web = new WebView(this);
//Javascriptの有効有無
//true:有効
//false:無効
web.getSettings().setJavaScriptEnabled(true);
//拡大鏡の表示有無(+と-コントロールによる拡縮)
//web.getSettings().setBuiltInZoomControls(true);
web.getSettings().setBuiltInZoomControls(false);
//WebViewをレイアウトに追加します
layout.addView(web);
web.loadDataWithBaseURL("",getHTML(),"text/html;charset=utf-8","utf-8","");
//web.loadData(getHTML(), "text/html;charset=utf-8", "utf-8");
}
private String getHTML()
{
StringBuilder sHTML = new StringBuilder();
sHTML.append("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN'>");
sHTML.append("<html>");
sHTML.append("<head>");
sHTML.append("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>");
sHTML.append("</head>");
sHTML.append("<body>");
sHTML.append("<form id=frm1 name=frm1>");
sHTML.append("<br />");
sHTML.append("assetフォルダ<br />");
sHTML.append("<img class='image' src='file:///android_asset/icon.png' width=50 height=50 />");
sHTML.append("<img class='image' src='file:///android_asset/test1.jpg' width=50 height=100 /><br />");
sHTML.append("<br />");
sHTML.append("rawフォルダ<br />");
sHTML.append("<img src='file:///android_res/raw/icon2.png' width=50 height=50 />");
sHTML.append("<img src='file:///android_res/raw/test2.jpg' width=50 height=100 /><br />");
sHTML.append("<br />");
sHTML.append("drawableフォルダ<br />");
sHTML.append("<img src='file:///android_res/drawable/icon3.png' width=50 height=50 />");
sHTML.append("<img src='file:///android_res/drawable/test3.jpg' width=50 height=100 /><br />");
sHTML.append("<br />");
sHTML.append("<br />");
sHTML.append("</form>");
sHTML.append("</body>");
sHTML.append("</html>");
return sHTML.toString();
}
//レイアウトを決定するオブジェクトを生成し渡します
public RelativeLayout.LayoutParams getLayoutObject(int width,int height)
{
return new RelativeLayout.LayoutParams(width, height);
}
}
|
画像のパスを使用するため「loadDataWithBaseURL」を使用してください。
「loadData」を使用して上記のパスにしても表示されません。
表示形式は次の形式となります。
(例)
フォルダ | パスの設定例 | assets | file:///android_asset/icon.png | raw | file:///android_res/raw/icon2.png | drawable | file:///android_res/drawable/icon3.png |
fileのあとに「/」(スラッシュ)が3個続きます。
実行結果と使用した画像のリソースの場所
|
|