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

 

  1. package com.example.windowmnagerexcercise; 
  2.  
  3. import android.os.Bundle; 
  4. import android.app.Activity; 
  5. import android.content.Context; 
  6. import android.graphics.PixelFormat; 
  7. import android.view.Gravity; 
  8. import android.view.LayoutInflater; 
  9. import android.view.Menu; 
  10. import android.view.View; 
  11. import android.view.View.OnClickListener; 
  12. import android.view.WindowManager; 
  13. import android.webkit.WebView.FindListener; 
  14. import android.widget.Button; 
  15. import android.widget.ImageView; 
  16.  
  17.  
  18. public class MainActivity extends Activity { 
  19.  
  20.     @Override 
  21.     protected void onCreate(Bundle savedInstanceState) { 
  22.         super.onCreate(savedInstanceState); 
  23.         setContentView(R.layout.activity_main); 
  24.         Button button=(Button) findViewById(R.id.button1); 
  25.         final LayoutInflater inflater=getLayoutInflater(); 
  26.         button.setOnClickListener(new OnClickListener() { 
  27.              
  28.             @Override 
  29.             public void onClick(View v) { 
  30.                 // TODO Auto-generated method stub 
  31.                 WindowManager windowManager=(WindowManager) getSystemService(Context.WINDOW_SERVICE); 
  32.                 WindowManager.LayoutParams wmParams=new WindowManager.LayoutParams(); 
  33.                 wmParams.type =WindowManager.LayoutParams.TYPE_PHONE; // 設置window type 
  34.                 wmParams.format =PixelFormat.RGBA_8888;// 設置圖片格式,效果爲背景透明 
  35.                 /* 
  36.                     * 下面的flags屬性的效果形同“鎖定”。 懸浮窗不可觸摸,不接受任何事件,同時不影響後面的事件響應。 
  37.                     */ 
  38.                 wmParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | 
  39.                 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; 
  40.                 wmParams.gravity = Gravity.RIGHT| Gravity. CENTER_VERTICAL; // 調整懸浮窗口至右側中間 
  41.                 // 以屏幕左上角爲原點,設置x、y初始值 
  42.                 wmParams.x = 0
  43.                 wmParams.y = 0
  44.  
  45.                 // 設置懸浮窗口長寬數據 
  46.                 wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT; 
  47.                 wmParams.height =WindowManager.LayoutParams.WRAP_CONTENT; 
  48.                 //注意此處的p_w_picpathview必須不屬於某個父控件,否則報錯。 
  49.                 ImageView p_w_picpathView=new ImageView(getApplicationContext()); 
  50.                 p_w_picpathView.setImageResource(R.drawable.e); 
  51.                 windowManager.addView(p_w_picpathView, wmParams); 
  52.             } 
  53.         }); 
  54.          
  55.     } 
  56.  
  57.      

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章