问题标签 [android-overlay]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android中自定义对话框片段的动画
为了实现动画弹出,我使用了自定义 DialogFragment 扩展 DialogFragment 类。然后,我在 xml 中设计了覆盖布局,并在加载弹出窗口时添加了它。因为,我需要做动画,所以我设计了 2 个动画 xml 文件并将其添加到 styles.xml 中,并在加载叠加层时添加了动画。
我在 3 个地方显示叠加动画。当我将它用作列表项中的组件以及将它与图像视图一起使用时,它完美地显示了,即从蜜蜂图标中生长出来并在蜜蜂图标中消失。但是当我将它与 VideoView 或 Exoplayer View 一起使用时,动画的起点向左移动 x 轴并向上移动 Y 轴。
此外,使用下面的三星 Note Edge 代码,弹出的动画与动画完美配合,但会导致三星 Galaxy S5 和 Nexus 4 出现上述问题。
它也可以正常工作,即当我不使用动画时,叠加层位于所有 3 个屏幕的蜜蜂所在的确切位置。所以,我猜错误是在动画中。
我正在提供示例代码,我写道。
自定义对话框片段:
anim_in.xml:
anim_out.xml:
样式.xml:
有人可以帮我解决这里的问题吗?
谢谢。
android - 如何在用作相机预览的 SurfaceView 上叠加自定义绘图?
我想要的是:
我想制作一个Camera
Activity(即显示相机预览的 Activity),其中一个正方形(它实际上有点复杂,但为了简单起见,我说的是正方形)覆盖在相机预览上,以便用户知道将相机放置在哪里,以便将特定的方形真实对象定位在覆盖在相机预览上的方形内。
就像下图中的相机预览中有一个人脸形状,以便用户可以将他们的脸放在那里。
我的解决方案:
我想有一个FrameLayout
,然后有SurfaceView
一个用于相机预览和一个VectorDrawable
用于覆盖的形状,就像FrameLayout
Z-order 它的孩子一样,VectorDrawable
最终将被覆盖在SurfaceView
.
它的问题:
我需要我的应用与 API 11 及更高版本兼容。所以我不得不使用VectorDrawableCompat
. 要使用VectorDrawableCompat
,我们需要设置一个 AAPT 标志。- 资源
问题是在网络上的任何地方,设置这个标志的方法都是针对 Android Studio 的。(就像这里描述的方法)几行将被添加到项目的 build.gradle 文件中。
我不知道如何在 Eclipse 中设置这个标志。我一直在搜索,最终安装了 Eclipse Buildship 插件以在 Eclipse 中使用 Gradle。我按照这个指南。当我将 Gradle 特性添加到我的 Android 项目时,我确实得到了一个build.gradle
文件。我粘贴了代码以在其中启用该 AAPT 标志,但它根本没有解决我的问题。
所以现在我正在寻找另一种方法来完成我的任务。请告诉我如何在不使用的情况下做到这一点VectorDrawableCompat
?
android - 从覆盖窗口执行后退按钮 - android
我添加了一个覆盖视图(LinearLayout)WindowManager
,并设置了以下参数:
此 LinearLayout 包含三个按钮“HOME”、“RECENTS”、“BACK”
onKeyEvent()
当按下手机的后退按钮时,我已实现从窗口管理器中删除此覆盖视图。
当从我的覆盖布局中按下后退按钮时,我会调用我的辅助功能服务并且它可以正常工作。现在,当我按下手机的后退按钮时,我的叠加视图仍然存在。因为我WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
在参数中设置了这个标志,所以它没有接收到关键事件。
但是当我没有设置这个标志时,从叠加层按下后退按钮只会隐藏叠加层本身,而不是在它下面的活动上执行。
我希望我的叠加层在按下手机的后退按钮时隐藏。并且还可以在从我的叠加层按下后退按钮时执行后退按钮功能。
有什么方法可以区分实际的按钮按下和软件触发的按钮按下performGlobalAction(MyAccessibilityService.ACTION_BACK)
吗?关于如何正确实施这一点的任何建议?
android - Android - 覆盖屏幕,包括状态栏内容
我想制作一个覆盖整个屏幕的覆盖屏幕,包括状态栏和导航栏。
我花了几个小时的谷歌搜索/研究仍然没有运气。
这是我的代码:
MainActivity.java(启动器):
活动主.xml:
Main2Activity.java(由MainActivity启动):
activity_main2.xml:
AndroidManifest.xml(仅android:theme="@style/Theme.Transparent"
添加,其余为自动生成):
样式.xml:
启动时的截图,它成功覆盖了整个屏幕,包括状态栏和导航栏,但状态栏内容(例如时钟,电池状态)消失了:
当我按回关闭覆盖活动时,状态栏内容又回来了:
我想要的是覆盖状态栏而不删除内容,我该怎么做?
android - 如何确定哪个应用程序导致“检测到屏幕覆盖”错误?
如果用户在显示通知时尝试授予权限并且我完全了解覆盖问题是什么,我已经阅读了Android“检测到屏幕覆盖”消息。
我也了解如何请求它以及如何检查我当前正在运行的应用程序是否有权在叠加层上绘制 (!Settings.canDrawOverlays(this))。
我因为我的应用程序而受到责骂,因为每次弹出权限请求时,都会显示叠加层弹出窗口,即使用户允许我的应用程序绘制叠加层,他们也永远无法通过权限屏幕。
经过一番挖掘,问题是一些用户在他们的屏幕上运行了一个录音应用程序:
问题是,这不是我的应用程序!这是 AZ Screen Recorder (链接),它作为叠加层运行,但由于出现此弹出窗口时它们就在我的应用程序中,因此我被归咎于这个问题。
我想向用户显示一些东西,他们需要检查是否有任何其他应用程序作为覆盖运行,但我不知道如何检查。
我可以检查他们是否能够在我的应用程序中绘制叠加层,但我不知道如何检查其他人。
因此,我的问题是,有没有办法以编程方式检查当前是否有任何应用程序在运行时运行覆盖,如果是,我可以找出所述应用程序的包名称吗?
(PS,我对有问题的屏幕录像机应用程序没有疑虑,我只是想链接到它,以便任何人都可以下载并测试他们是否选择)
android - Android是否可以创建服务覆盖并拦截所有触摸事件数据?
您好我正在尝试创建一个透明的覆盖层来拦截(并且不阻止其他应用程序)我在智能手机上执行的所有触摸事件,特别是我对滚动事件感兴趣,这是我的服务类中的代码:
但是,有了这个我只能得到 ACTION_OUTSIDE 类型的运动事件,我需要所有的事件数组来跟踪滚动,提前谢谢你!
android - How to make a pop-up window like Google Translate?
As you see below, Google Translate can show a pop-up window when PROCESS_TEXT
is received. (I am not asking for how to process this message.)
I want to do a similar thing but there are some problems. I created a pop-up window using TYPE_SYSTEM_ALERT
. (I wanted to use TYPE_APPLICATION_OVERLAY
, but a permission error kept happening.) How can I solve these problems and make a pup-up window just like that of Google Translate? I think this is not a weird requirements. Do you know any scaffolding, template or sample for this? I searched Google, but failed to find one.
- With Google Translate's, you can press the back button to close it. Mine does not.
- With Google Translate's, if you tap elsewhere (e.g., the shady part), it closes. Mine does not. I could get the "tap outside" event and close it, but only when
FLAG_NOT_FOCUSABLE
was set, but if that was set, I could not interact with it.
android - 如何不为特定视图提供覆盖
我有一个有黑色透明覆盖的活动。
我需要做的是删除活动中特定按钮的覆盖。但所有其他部分提取按钮将包含一个覆盖。
android - 绘制其他应用程序的默认权限 - true
在我的应用程序中,我需要将在其他应用程序上绘制的默认权限设为 true,就像在大多数 Android 应用程序中一样。
如何在我的应用程序中执行此操作。