安卓桌面懸浮

package com.ddzybj.zydoctor.receiver;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.WindowManager;

import com.ddzybj.zydoctor.R;
import com.ddzybj.zydoctor.view.DragFloatActionButton;

public class FloatButtonService extends Service {
    private WindowManager wManager;// 窗口管理者
    private WindowManager.LayoutParams mParams;// 窗口的屬性

    private DragFloatActionButton windowView;
    private SurfaceHolder holder;
    @Override
    public void onCreate() {

        super.onCreate();
        wManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
        mParams = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSPARENT);
        mParams.type = WindowManager.LayoutParams.TYPE_INPUT_METHOD;// 系統提示window
        mParams.format = PixelFormat.TRANSLUCENT;// 支持透明
        // mParams.format = PixelFormat.RGBA_8888;
        mParams.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;// 焦點
        mParams.width = WindowManager.LayoutParams.WRAP_CONTENT;// 窗口的寬和高
        mParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
        mParams.gravity = Gravity.LEFT | Gravity.TOP;
        mParams.y = 100;
        mParams.x = 100;
        mParams.windowAnimations = android.R.style.Animation_Toast;
        // mParams.alpha = 0.8f;//窗口的透明度

        LayoutInflater layoutInflater = LayoutInflater.from(getApplicationContext());
        windowView = new DragFloatActionButton(getApplicationContext());
        windowView.setImageResource(R.mipmap.delete_operation);

        wManager.addView(windowView, mParams);// 添加窗口

    }
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public void onDestroy() {
        if (wManager!=null&&windowView != null) {
            wManager.removeView(windowView);
        }
        super.onDestroy();
    }
}

 

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