我正在尝试创建自己的(迷你)广告网络来交叉推广我们自己的应用。我不想使用admob或任何其他SDK,因为我认为他们不再适用于3.0以下Android SDK,应用程序必须运行在Android 2.3上
在解释之后,我写了一个html页面并上传到我们的服务器(片段取自网页):
<html>
<head>
<script src="banners.js">
<style>
html {
position: relative;
min-width: 320px;
min-height: 50px;
height: 100%;
}
</style>
</script>
</head>
<body style='margin:0;padding:0;' onLoad = "javascript:rotateBanner();javascript:setInterval('rotateBanner()',20000);">
<a href= "http://www.bigfoot.com/~java4free" onMouseOver = "javascript:pause()" onMouseOut = "javascript:resume()">
<img style="margin-left:auto;margin-right:auto" src = "first1.jpg"></a>
</body>
</html>
javascript将是:
<!-- //Hide from non-javascript browsers
//Author: Mark Ganson
//Date: 3/10/2000
//Site: http://www.bigfoot.com/~java4free
var nCurrentBanner = 0;
var bPause = false;
//replace these links with the appropriate href portion of your banner code
//example: <a href="java4free.html"><img src="java4freebanner.jpg></a>
//in the above example, "java4free.html" is the link string
//and "java4freebanner.jpg" is the image string
//href parts
strLinks = new Array (
"http://www.commission-junction.com/track/track.dll?AID=10347&PID=296657&URL=http%3A%2F%2Fwww%2Ecj%2Ecom%2FAffiliate%2Findex%2Easp",
"http://www.bigfoot.com/~java4free.html"
);
//img parts
strImages = new Array (
"http://myserver.co.uk/banners/first1.jpg",
"http://myserver.co.uk/banners/first2.png"
);
//status bar messages
//comment out this block if you don't want status bar messages
strMessages = new Array(
"Commission-Junction. Get paid!",
"Java4Free! Free webtools for webmasters!"
);
function rotateBanner(){
if (bPause){
return;
}
//following code assumes that the banner will be the first link/image
//in your html page. If this is not correct, you will need to modify
//the value in between the [] accordingly. For example, if you have
//2 banners appearing before this banner in your html, you would replace
//the [0] with [2] in the lines below.
document.links[0].href = strLinks[nCurrentBanner];
document.images[0].src = strImages[nCurrentBanner];
//comment out the following line if you don't want status bar messages
window.status = strMessages[nCurrentBanner];
//now rotate for next iteration
if (nCurrentBanner < strLinks.length-1){
nCurrentBanner++;
} else {
nCurrentBanner = 0;
}
}
function pause(){
bPause=true;
}
function resume(){
bPause=false;
}
然后我通过XML
创建了一个webview<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
然后我将此代码插入到我想要展示广告的onCreate方法中
WebView wv = (WebView) findViewById(R.id.webview);
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setBackgroundColor(Color.TRANSPARENT);
wv.loadUrl("http://myserver.co.uk/banners/banner.html");
问题是:
这显示广告很好,但我猜是因为图片在一个封闭的html页面中,当我打电话时
。wv.getSettings()setLoadWithOverviewMode(真);
视口将其调整为非常小,320x50图像不会保持不变。
请帮忙。