现在的位置: 首页 > 综合 > 正文

android 创建webview悬浮窗口

2013年02月25日 ⁄ 综合 ⁄ 共 1253字 ⁄ 字号 评论关闭

在悬浮窗口中也可以通过webview进行布局,这就需要将webview控件作为悬浮窗口实现:

首先要动态创建webview,不能使用布局文件进行布局,否则会报错;再调用windowmanager创建悬浮窗口。

首先要在AndroidManifest.xml中增加权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 

动态创建webview,并设置属性:

mywebview = new WebView(this);
mywebview.getSettings().setJavaScriptEnabled(true);                   //设置允许Js
/*设置webview控件背景透明*/
mywebview.setBackgroundColor(Color.TRANSPARENT);
		
mywebview.setWebChromeClient(new WebChromeClient());                
/* **用来可以打开网页中的链接** */
mywebview.setWebViewClient(new WebViewClient(){
	@Override
	public boolean shouldOverrideUrlLoading(WebView view, String url) {
		// TODO Auto-generated method stub
		view.loadUrl(url);
		return true;
	}
});
/* 和JS交互的接口 */
mywebview.addJavascriptInterface(new JSInterface(), "JS");
mywebview.requestFocus();
Log.v(TAG, "the webview will start");
mywebview.loadUrl("file:///android_asset/index.html");             //要载入的布局网页

使用windowmanager创建悬浮窗口:

wm=(WindowManager)getApplicationContext().getSystemService("window");
wmlay = new WindowManager.LayoutParams(); 
wmlay.type= LayoutParams.TYPE_PHONE;                      //当前悬浮窗口位于phone层
wmlay.format=PixelFormat.RGBA_8888;                      //悬浮窗口背景设为透明
wmlay.gravity=Gravity.LEFT|Gravity.TOP;
wmlay.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL;	//属性设置
wmlay.x = 0;
wmlay.y = 0;
wm.addView(mywebview, wmlay);

关于悬浮窗口的销毁,可以使用语句:

wm.removeView(mywebview);

参考:http://www.xsmile.net/?p=538

抱歉!评论已关闭.