點擊按鈕彈出懸浮窗口的小例子

package com.example.windowmnagerexcercise; 
 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.PixelFormat; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.WindowManager; 
import android.webkit.WebView.FindListener; 
import android.widget.Button; 
import android.widget.ImageView; 
 
 
public class MainActivity extends Activity { 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        Button button=(Button) findViewById(R.id.button1); 
        final LayoutInflater inflater=getLayoutInflater(); 
        button.setOnClickListener(new OnClickListener() { 
             
            @Override 
            public void onClick(View v) { 
                // TODO Auto-generated method stub 
                WindowManager windowManager=(WindowManager) getSystemService(Context.WINDOW_SERVICE); 
                WindowManager.LayoutParams wmParams=new WindowManager.LayoutParams(); 
                wmParams.type =WindowManager.LayoutParams.TYPE_PHONE; // 設置window type 
                wmParams.format =PixelFormat.RGBA_8888;// 設置圖片格式,效果爲背景透明 
                /* 
                    * 下面的flags屬性的效果形同「鎖定」。 懸浮窗不可觸摸,不接受任何事件,同時不影響後面的事件響應。 
                    */ 
                wmParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | 
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; 
                wmParams.gravity = Gravity.RIGHT| Gravity. CENTER_VERTICAL; // 調整懸浮窗口至右側中間 
                // 以屏幕左上角爲原點,設置x、y初始值 
                wmParams.x = 0; 
                wmParams.y = 0; 
 
                // 設置懸浮窗口長寬數據 
                wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT; 
                wmParams.height =WindowManager.LayoutParams.WRAP_CONTENT; 
                //注意此處的imageview必須不屬於某個父控件,不然報錯。 
                ImageView imageView=new ImageView(getApplicationContext()); 
                imageView.setImageResource(R.drawable.e); 
                windowManager.addView(imageView, wmParams); 
            } 
        }); 
         
    } 
 
     
}
相關文章
相關標籤/搜索