android 创建webview悬浮窗口

来源:互联网 发布:荆门第四届网络作文 编辑:程序博客网 时间:2024/05/22 10:25

在悬浮窗口中也可以通过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(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// TODO Auto-generated method stubview.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