最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在style文件中定义两个style,一个样式,一个动画
style文件:
<style name="DialogAnimation" parent="@android:style/Animation.Dialog">
<item name="android:windowEnterAnimation">@anim/dialog_show</item>
<item name="@android:windowExitAnimation">@anim/dialog_dismiss</item>
</style>
<style name="Translucent_NoTitle" parent="android:style/Theme.Dialog">
<item name="android:background">">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
后来发现也很卡,不知什么原因。
最后用半透明Activity总行了吧。
android:name=".GoldActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>
缩放加平移动画:(取巧实现,scale和translate同时使用会没法控制移动位置)
<scale android:duration="1000" android:fillAfter="true" android:fromXScale="100%" android:fromYScale="100%" android:interpolator="@anim/gold_accelerate_interpolator" android:pivotX="87%" android:pivotY="100%" android:toXScale="10%" android:toYScale="10%"/>
其中87%正好是下面三个标签的中间位置
相关推荐
首先,我们需要理解Android悬浮窗的核心机制。在Android系统中,悬浮窗是通过`WindowManager`服务来实现的,主要涉及`LayoutParams`参数设置。悬浮窗通常使用`TYPE_PHONE`或`TYPE_SYSTEM_ALERT`类型的窗口,这两种...
1. **悬浮窗权限**:在AndroidManifest.xml文件中,开发者需要添加悬浮窗权限,即`<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>`。从Android 6.0 (API level 23)开始,用户需要在运行...
总之,通过深入研究“360FloatWindowDemo”这个实例,开发者可以全面了解Android悬浮窗的实现原理和细节,从而在自己的应用中实现类似功能,提高用户体验。同时,需要注意的是,悬浮窗可能会对用户界面造成干扰,...
这个应用由开发者mrrobot97编写,并命名为NetSpeed,其源代码是学习和研究Android悬浮窗与网络数据监测的理想材料。 描述中提到的"悬浮窗网速显示计"是一个在屏幕上方或任意位置浮动的小窗口,它可以持续显示当前...
一个java源码实现的Android悬浮框特效,用来模仿有些音乐播放器中的悬浮歌词功能,使用Android Activity并可拖动悬浮框,@author 丸子。触摸点相对于屏幕左上角坐标,这个悬浮歌词框支持更新界面,源代码内支持定义...
比如,使用`FragmentManager`和`FragmentTransaction`进行Fragment的管理,可以创建类似滑动菜单或顶部悬浮按钮的特效。 6. **生命周期管理**:Activity的生命周期是其特效实现的基础,理解何时初始化、显示、暂停...
这个"Android悬浮框弹幕效果"的示例项目就是一个很好的实践,它涵盖了如何利用`WindowManager`服务来创建浮动窗口,以及如何实现弹幕滚动的效果。下面我们将深入探讨这两个关键知识点。 首先,`WindowManager`是...
7. **通知栏与悬浮窗**: - **Notification**:创建系统通知,可包含文本、图标、声音和扩展视图,提供点击操作。 - **System_ALERT_WINDOW**权限:允许应用显示浮动窗口,常用于聊天应用的小窗口回复功能。 8. *...
8. **兼容性处理**:考虑到Android系统的碎片化,需要确保悬浮窗在不同版本和设备上都能正常工作,可能需要适配不同屏幕尺寸和分辨率。 9. **权限管理和用户提示**:对于Android 6.0及以上版本,需要在运行时请求...
"Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果 - 郭霖的专栏 - 博客频道 - CSDN.NET.mht"文档可能详细介绍了如何利用 WindowManager 服务和 LayoutParams 设置悬浮窗的位置、大小和透明度,以及如何处理悬浮...
9. **通知和悬浮窗**:在Android中,通知是向用户传达信息的重要方式,而悬浮窗则可以提供快捷操作。源码可能包含了如何创建和管理这两类元素。 10. **Material Design 设计规范**:项目可能遵循了Material Design ...
android 悬浮窗 监视内容.rar android 指南针 源码.rar Android 瀑布流 Demo.rar Android 版本检测与管理.rar Android 电子杂志(带翻页效果)源码.rar Android 电量显示Widgets插件实现.zip Android 程序启动界面...
7. **滑动销毁/浮窗效果**:如底部导航栏的滑动隐藏,或者悬浮窗口的拖拽效果,这需要自定义Behavior和 CoordinatorLayout 结合使用。 8. **涟漪效果**:Material Design中的触摸反馈效果,可以实现类似水波纹扩散...
Launcher-master ...悬浮窗菜单 未完成 搜索 未完成 最近应用 未完成 说明: 该项目还在开发阶段,所以会存在很多bug,因此如果需要使用该项目进行公司项目开发的话,需要自己去修改存在的问题,本人
5. **安卓落花效果**:这是Android独有的视觉特效,通常通过粒子系统或者自定义View实现。粒子系统可以生成大量动态的、独立的“花瓣”,通过控制它们的位置、速度和旋转等属性,模拟花瓣飘落的动态效果,为用户带来...
7. **权限管理**: 如果此效果需要在锁屏状态下显示,可能需要申请相应的权限,例如在Android M及以上版本,可能需要请求“自启动”和“显示悬浮窗”权限。 8. **兼容性测试**: 由于Android设备的多样性和系统版本...
4. **权限声明** - 在AndroidManifest.xml文件中,需要声明悬浮窗权限(android.permission.SYSTEM_ALERT_WINDOW)和其他必要的权限。 5. **事件处理** - 代码会包含处理用户与小插件交互的逻辑,如点击、滑动等。 6...
它可以悬浮于当前活动之上,不占据整个屏幕,这样既不会打断用户的操作流,又能引起注意。资源包中的对话框可能包含了不同风格和功能的对话框设计,如提示对话框、确认对话框和自定义对话框等。 其次,菜单(Menu)...
2. 播放控制器通常以悬浮小窗口的形式存在,方便用户在任何界面下控制音乐播放。 3. 通知栏控制,使用户在后台也能方便地控制音乐播放。 五、音乐库管理 Apollo提供了扫描本地音乐库的功能,通过扫描SD卡上的MP3等...