如何为(主页,菜单,后退,搜索)的虚拟/软按钮创建应用程序/服务始终位于顶部?

时间:2010-06-05 06:43:27

标签: android

我想制作一个看起来像的应用程序/服务(Nexus One touch按钮) 用于导航键(主页,菜单,后退,搜索)

按钮应始终位于顶部并将命令发送到正在运行的实际应用程序。

有人有想法和示例代码怎么做?

更新

我也看到并测试了一个应用程序,它总是显示“破解显示” 因此,tecnic可能会对于始终在顶部显示按钮非常有用。

这些功能,显示按钮并捕捉“触摸事件”并发送事件 活动程序应该在后台运行的服务模块中。

2 个答案:

答案 0 :(得分:3)

你不能做这种应用。首先,您无法始终将应用保持在最顶层,然后您无法将关键事件发送到其他应用。

答案 1 :(得分:0)

你可以这样做:

            WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    System.out.println("Accesibilty cargado correctametne");
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mTopView = (ViewGroup) inflater.inflate(R.layout.resourceshower, null);
    LayoutParams mWmlp = new WindowManager.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    mWmlp.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
            | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
    mWmlp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
    mWmlp.width = 100; //size of window
    mWmlp.height = 50;//size of window
    mWmlp.format = PixelFormat.TRANSPARENT;
    mWmlp.x =50; //position of window
    mWmlp.y = 50; //position of window
    mWindowManager.addView(mTopView, mWmlp);

然后,如果您想要在其中获得按钮点击,则在按钮上放置(R.layout.resourceshower)的布局中添加以下内容:android:onClick="launch" 并创建一个名称相同的公共方法,如:public void launch(View v){..} 您必须在创建浮动窗口的服务/活动中创建此方法。