0

我需要在我的应用程序中创建类似放大镜的功能。就像 iPhone 上的“放大镜”效果!问题是我需要在弹出窗口中执行此操作,但我不知道如何使它工作!

弹出窗口显示我使用 shapeDrawables 生成和绘制的颜色网格。我想要的是显示更大的颜色,当用户触摸并在弹出窗口(颜色网格)周围移动手指时放大它。这个想法是在颜色上创建跟踪缩放效果,以便用户可以在他的手指当前所在的颜色下更清楚地看到。

问题是:

  • 我似乎无法在此之上创建另一个弹出窗口,我认为是 Android 限制?
  • 如果我修改当前shapeDrawable,resize,改变边界,需要重新显示弹窗才生效(当然不能接受)

那么,任何人都知道我可以在那个弹出窗口上绘制的方法吗?

编辑 :

我已经尝试使用自定义 Toast 对象来解决这个问题......但它并没有完全解决问题。它可以工作,但是 toast 对象出现的速度很慢,因此触摸动作与用户在颜色网格上的移动完全不同步。

4

1 回答 1

0

我不确定这是否对您有帮助,但是您可以通过使用第二个 Activity 来完成此操作...如果您在清单中包含以下属性,则第二个 Activity 将使用 Android 的半透明主题:
    <activity android :theme="@android:style/Theme.Translucent">
这第二个活动现在将只包含您在布局中放置的内容。也就是说......您正在运行的“真实”活动仍然会在它后面可见(在新布局中您没有用视图覆盖它的任何地方)。

如果您真的想要类似于弹出窗口,您也可能更喜欢 Theme.Dialog。

如果您采用这种方法,需要记住的是,您可能希望在新活动中覆盖 onWindowFocusChanged(),并在失去焦点时覆盖 finish()。此外,您需要弄清楚如何在两个活动之间共享您的数据。

于 2011-05-26T15:29:24.597 回答