mapview上的悬浮组件 可以用于应用程序

 

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>

挺实用的一个功能

可能不是很完善,希望高手指教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值