相关疑难解决方法(0)

创建系统覆盖窗口(始终在顶部)

我正在尝试创建一个始终操作顶部按钮/可点击图像,它始终位于所有窗口的顶部.

概念证明是

我已经成功并且现在有一个正在运行的服务.该服务始终在屏幕的左上角显示一些文本,而用户可以正常方式与其他应用程序自由交互.

我正在做的是子类ViewGroup并将其添加到带有标志的根窗口管理器TYPE_SYSTEM_OVERLAY.现在我想添加一个按钮/可点击图像来代替这个文本,它可以自己接收触摸事件.我尝试覆盖整个"onTouchEvent",ViewGroup但它没有收到任何事件.

如何仅在我的常见顶视图组的某些部分接收活动?请建议.

public class HUD extends Service {
    HUDView mView;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_LONG).show();
        mView = new HUDView(this);
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                0,
//              WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
//                      | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.RIGHT | Gravity.TOP;
        params.setTitle("Load Average");
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        wm.addView(mView, params);
    }

    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

android overlay

279
推荐指数
9
解决办法
23万
查看次数

服务如何监听触摸手势/事件?

我想知道像SwipePad和Wave Launcher这样的应用程序是如何通过服务来检测触摸手势/事件的.这些应用程序能够检测到触摸手势,即使它不在自己的活动中.我看过整个互联网,但没有找到他们如何做到这一点.

我的主要问题是服务如何监听触摸客户/事件,就像常规活动可能会收到MotionEvents一样,即使它可能不在原始活动或上下文中.我本质上是在尝试构建一个应用程序,该应用程序将从用户处重新识别特定的触摸手势,无论哪个Activity位于顶部,并在该手势被识别时执行某些操作.触摸识别将是在后台作为服务运行的线程.

service events android touch gesture

60
推荐指数
2
解决办法
3万
查看次数

ICS中的TYPE_SYSTEM_OVERLAY

在Honeycomb中,我能够使用TYPE_SYSTEM_OVERLAY创建系统覆盖,并使用FLAG_WATCH_OUTSIDE_TOUCH接收触摸.

现在ICS改变了一些东西.我仍然可以创建系统覆盖,但我无法接触.

现在,我能够使用TYPE_SYSTEM_ALERT创建相同的内容并获取触摸,但它只是捕获touchevents,而不是像Honeycomb那样传递它们.

有任何想法吗?

亲切的问候

android layoutparams android-windowmanager android-4.0-ice-cream-sandwich

12
推荐指数
2
解决办法
1万
查看次数

其他应用程序顶部带有手柄(而不是操作栏)的可拖动抽屉

背景

我们都知道我们可以使用导航抽屉作为在应用程序中导航的新方法(即使是像这样的库).

我们还知道一些应用程序可以使用SYSTEM_ALERT_WINDOW权限浮动在其他应用程序之上(如AirCalc所示,并且就像这样).

我注意到一些应用程序结合了扩展和折叠的视图,如下一个:

还有很多...

问题

我们需要合并其他应用程序之上的2个概念,并允许拖动句柄以显示其左侧的内容(如导航抽屉)

也许这可以表明我的意思:

在此输入图像描述

据我所知,使用系统警报权限将任何内容置于顶部需要知道视图的大小.

但是,这是不同的,因为我无法将其设置为整个屏幕,因为我不想阻止屏幕的其余部分,以防用户只看到导航抽屉的手柄.

这个问题

是否有可能合并这2个概念?

如何让所有州在表现出色的同时表现得很好?

为了避免阻止触摸,我还想让用户上下拖动手柄,或者以某种方式自定义其位置.

android floating navigation-drawer

11
推荐指数
2
解决办法
3726
查看次数