【问题标题】:How to make an overlay when sharing into app in android?在android中分享到应用程序时如何制作叠加层?
【发布时间】:2015-01-20 23:01:08
【问题描述】:

我正在开发一个 android 应用程序,该应用程序接收来自另一个应用程序的内容,该应用程序通过 android 意图共享它。我做了意图过滤器以将共享内容接收到应用程序中,但我看到像 Pocket 这样的应用程序在没有将原始应用程序覆盖在应用程序上的情况下做到了这一点,我不知道该怎么做。有谁知道该怎么做或给我一些提示?

【问题讨论】:

  • 如果你解决了这个问题,你能分享一下解决方案吗?我正在尝试像 Pocket 一样制作共享叠加层
  • 您唯一需要做的就是创建一个包含您想要在叠加层中显示的内容的活动。按照 Nikola Despotoski 在接受的答案中写的设置主题,然后设置 IntentFilter (developer.android.com/training/basics/intents/filters.html) 来过滤您想要接收的内容。

标签: java android pocket


【解决方案1】:

收到您的 Intent 后,您应该启动一个 Service,它会在 Window 上创建并附加您的 View/ViewGroup。 这将允许您将调用应用程序保持在前台

要创建浮动覆盖,请查看此处:http://www.piwai.info/chatheads-basics/

【讨论】:

    【解决方案2】:

    启动具有以下属性的透明主题的活动(在 API 18 上测试是否存在错误):

    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
    

    根据需要设置子元素,就像在正常活动中所做的那样。

    【讨论】:

    • 这行得通,但似乎水龙头没有传递到底层应用程序/活动。有没有办法创建一个覆盖层,允许与它下面的应用程序/活动交互?
    • 做你想做的事情的方法是启动一个服务,该服务通过 WindowManager 类创建覆盖并从活动中调用 finish() 方法。喜欢 Facebook 聊天头。 stackoverflow.com/questions/15975988/…
    【解决方案3】:

    我会看WindowManager 类:

    http://developer.android.com/reference/android/view/WindowManager.html

    这是一个问题的链接,可以更好地解释它是什么:

    What is WindowManager in android?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 2020-03-26
      相关资源
      最近更新 更多