package com.uskytec.map.view;
import android.content.Context;
import android.graphics.PixelFormat;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
public class FloatingComponent {
Context context = null;
private WindowManager wm = null;
private WindowManager.LayoutParams wmParams = null;
private View view = null;
public FloatingComponent(Context context) {
this.context = context;
init();
}
private void init(){
wm = (WindowManager) context.getApplicationContext().getSystemService(
"window");
wmParams = new WindowManager.LayoutParams();
//设置window type
wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
//设置图片格式,效果为背景透明
wmParams.format= PixelFormat.RGBA_8888;
//设置Window flag
wmParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
//以屏幕左上角为原点,设置x、y初始值
wmParams.x=0;
wmParams.y=0;
//设置悬浮窗口长宽数据
wmParams.width=40;
wmParams.height=20;
wmParams.gravity=Gravity.TOP|Gravity.CENTER_VERTICAL;
}
public void setPosition(int x,int y){
wmParams.x = x;
wmParams.y = y;
}
public void setWidth(int w){
wmParams.width = w;
}
public void setHeight(int h){
wmParams.height = h;
}
public View setView(View v){
view = v;
return v;
}
public void show(){
wm.addView(view,wmParams);
}
public void setGravity(int gravity){
wmParams.gravity = gravity;
}
public void destroy(){
if(null!=wm&&null!=view){
wm.removeView(view);
}
}
public void invalidate(){
view.invalidate();
}
}
要增加权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission>
挺实用的一个功能
可能不是很完善,希望高手指教