Android:Facebook的通知小部件

您是否曾经签出Facebook应用程序? 当您单击顶部的“通知”按钮时,该应用程序会创建一个漂亮的覆盖窗口,其中包含所有信息的滚动列表视图。
它不会使背景变暗,如果您单击屏幕上不在重叠窗口本身中的任何位置,它也会消失。 覆盖层是向UI添加一些修饰的好主意。
前几天,我开始尝试弄清楚Facebook如何做到这一点。 重现这种类型的叠加层的一种好方法是实际使用“透明活动”。 您可以在Android清单中定义透明活动,如下所示:
<activity
Android:name=".OverlayActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>
这给您一个空的活动。 因此,当启动此活动时,看起来好像什么都没有发生,并且用户无法再单击上一个活动中的UI元素。 现在我们有了一个活动,可以看到最后一个活动的背景,我们需要以XML设计自身的叠加层。 在Facebook的情况下,这将是ListView和矩形图形。 布局也需要正确定位。 请注意,在上面的Facebook图像中,图像的放置方式是使矩形指针位于激活它的按钮的正下方。
使用此实现的好处在于,叠加层的功能完全隔离,因为它位于新活动中。 在OverlayActivity中,我们仅生成列表并为列表设置点击处理程序。 要获得Facebook添加的所有功能,还剩下一些技巧。
要在单击叠加层之外的任何区域时使叠加层消失,需要在叠加层的布局中完成一些工作。 这涉及设置一个单击处理程序,以覆盖叠加层的可见小部件未使用的所有区域。 通过在根布局中设置点击处理程序,以关闭点击活动,我们便有了所需的功能。 这在Android中效果很好,因为在其他视图上设置的任何单击处理程序(在Facebook的情况下为ListView)都将覆盖根目录的单击处理程序。
要比Facebook的实现高出一步,可以添加动画以提供显示和移除叠加层的过渡。 例如,我们可以轻松地添加淡入和淡出动画,从而使叠加看起来更加清晰。 由于我们有一个活动,因此很容易将任何类型的动画添加到叠加层中。 为了获得有趣的动画效果,请查看Android中的Alpha动画

翻译自: https://www.javacodegeeks.com/2012/05/android-facebooks-notification-widget.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值