너무 간단합니다.
<body onload="getimage()" >
이 더 많은 이미지를 전달하려면
<script type="text/javascript">
function getimage()
{
Android.ProcessJavaScript("image",null);
}
function image(src) {
var img = document.createElement("IMG");
img.src = src;
document.getElementById('image').appendChild(img);
}
</script>
하고 다음을 추가 : 다음
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebView;
public class StackOverFlowActivity extends Activity {
private Handler mHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView view=(WebView)findViewById(R.id.webView1);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl("file:///android_asset/index.html");
view.addJavascriptInterface(new MyJavaScriptInterface(), "Android");
}
final class MyJavaScriptInterface
{
public void ProcessJavaScript(final String scriptname, final String args)
{
mHandler.post(new Runnable()
{
public void run()
{
String url="file:///android_asset/img.jpg";
webview.loadUrl("javascript:image(\""+url+"\")");
}
});
}
}
}
index.html을 시도
function image(src) {
//var img = document.createElement("IMG");
//img.src = src;
// document.getElementById('image').appendChild(img);
images = eval('(' + src+ ')');
for (i = 0; i < images.length; i++) {
var img = document.createElement("IMG");
img.src = images[i];
document.getElementById('image').appendChild(img);
}
}
하고 싶어서
final class MyJavaScriptInterface
{
public void ProcessJavaScript(final String scriptname, final String args)
{
mHandler.post(new Runnable()
{
public void run()
{
//String url="file:///android_asset/img.jpg";
//webview.loadUrl("javascript:image(\""+url+"\")");
ArrayList<String> url=new ArrayList<String>();
url.add("file:///android_asset/img1.jpg");
url.add("file:///android_asset/img2.jpg");
url.add("file:///android_asset/img3.jpg");
webview.loadUrl("javascript:image(\""+url+"\")");
}
});
}
}
같은 부하 URL에 대신 문자열의의 문자열 배열이 이미지 스크립트 호출하려면 더 시간 :
final class MyJavaScriptInterface
{
public void ProcessJavaScript(final String scriptname, final String args)
{
mHandler.post(new Runnable()
{
public void run()
{
// you can load url anywhere in this application. check below to call this inside the other function.
callimageFirstTime(scriptname,args);
// check below to loadurl in other class Test.java
Test newtest=new Test();
newtest.methodtoloadurl(scriptname,args);
}
});
}
}
public void callimageFirstTime(String script, String arguments)
{
// add images with String array and pass here
webview.loadUrl("javascript:image(\""+url+"\")");
}
이 꽤 도움이되었다하지만 난 함수 이미지 multipule 시간을 사용하여 호출 할 수 있습니다 당신은 어떻게 설명 할 수 내 onCreate 메소드에서. 지금 당장 당신이 제공 한 코드는 img.jpg를 한번로드 할 것입니다, 그러나 나는 마킹이있는 영사 스크린처럼 서로의 ontop 다중 이미지를 쌓고 싶습니다. –
더 많은 이미지를 전달하려면 문자열 대신 문자열 배열을 사용할 수 있습니다. – Ponmalar
고맙습니다. –