android在系统屏保上显示控件

来源:互联网 发布:大数据金融是什么? 编辑:程序博客网 时间:2024/05/04 15:36

通过WindowManager可以在系统屏保上显示控件,不过需要适配,不然添加的控件可能遮住系统屏保上的控件。


权限:

         <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>


主要的代码:

        mWm = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);
        mBtnView = new Button(getApplication());
        mBtnView.setText("window");
        mBtnView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Log.i(TAG, "btn_onclick");
            }
        });
        WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
        mParams.type = LayoutParams.TYPE_TOAST;
        mParams.format = PixelFormat.RGBA_8888;
        mParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE;
        mParams.gravity = Gravity.BOTTOM | Gravity.RIGHT;
        mParams.width = dip2px(getApplication(), 100);
        mParams.height = dip2px(getApplication(), 40);
        mWm.addView(mBtnView, mParams);


源码地址:http://download.csdn.net/detail/kangbixing/9275729

源码中mParams.type的值替换成LayoutParams.TYPE_TOAST,这样才能做时间监听,TYPE_SYSTEM_OVERLAY不能获取焦点,所以没法做点击事件监听


0 0