1. 程式人生 > >Android WindowManager詳解

Android WindowManager詳解

複製程式碼
public class WindowService extends Service implements OnClickListener {

    private WindowManager wManager;// 視窗管理者
    private WindowManager.LayoutParams mParams;// 視窗的屬性
    private MyView myView;
    private boolean flag = true;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
return null; } @Override public void onCreate() { // TODO Auto-generated method stub wManager = (WindowManager) getApplicationContext().getSystemService( Context.WINDOW_SERVICE); mParams = new WindowManager.LayoutParams(); mParams.type
= WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;// 系統提示window mParams.format = PixelFormat.TRANSLUCENT;// 支援透明 //mParams.format = PixelFormat.RGBA_8888; mParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;// 焦點 mParams.width = 490;//視窗的寬和高 mParams.height = 160; mParams.x
= 0;//視窗位置的偏移量 mParams.y = 0; //mParams.alpha = 0.1f;//視窗的透明度 myView = new MyView(this); myView.setOnClickListener(this); super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub if (flag) { flag = false; wManager.addView(myView, mParams);//新增視窗 } return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { // TODO Auto-generated method stub if (myView.getParent() != null) wManager.removeView(myView);//移除視窗 super.onDestroy(); } @Override public void onClick(View v) { // TODO Auto-generated method stub if (v.equals(myView)) { flag = true; if (myView.getParent() != null) wManager.removeView(myView);//移除視窗 } } }
複製程式碼