弹出窗口中的类似放大镜的功能……如何?

问题描述

| 我需要在我的应用中创建类似放大镜的功能。就像iPhone上的“放大镜”效果一样! 问题是我需要在弹出窗口中执行此操作,而我不知道如何使其正常工作! 弹出窗口显示我生成的颜色网格,并使用shapeDrawables逐一绘制。我要显示的颜色更大,当用户触摸并在弹出窗口(颜色网格)周围移动手指时将其放大。想法是在颜色上创建跟踪缩放效果,以便用户可以更清楚地看到他的手指当前所在的颜色。 问题是: 我似乎无法在此之上创建另一个弹出窗口,我认为是Android的限制吗? 如果我修改当前shapeDrawable,调整其大小,更改边界,则它需要重新显示弹出窗口才能生效(这当然是不可接受的) 因此,有人知道我可以在该弹出窗口上绘制的方法吗? 编辑: 我已经尝试使用“自定义Toast”对象解决此问题...但是并不能完全解决问题。它可以工作,但是吐司对象显示缓慢,因此触摸动作与用户在色格上的移动完全不同步。     

解决方法

我不确定这是否对您有帮助,但是您可以通过使用第二个Activity来完成此操作...如果您在清单中包含以下属性,则该第二个Activity将使用Android的半透明主题: 现在,第二个活动将仅包含您在布局中放置的内容。就是说,您正在运行的“真实”活动仍将在其后面可见(在您未用新布局中的视图覆盖的任何地方)。 如果您确实想要类似于弹出窗口,则也可能更喜欢Theme.Dialog。 如果采用这种方法,要记住的一点是,您可能希望在新活动中重写onWindowFocusChanged(),并在失去焦点时重写finish()。此外,您需要弄清楚如何在两个活动之间共享数据。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...