android 悬浮窗特效 博客分类: android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义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%正好是下面三个标签的中间位置
上一篇: 50 道Java 线程面试题(经典)
推荐阅读
-
Android之菜单大锅烩(19) 博客分类: Android初步 android选项此单子菜单
-
android 悬浮窗特效 博客分类: android
-
android 悬浮窗特效 博客分类: android
-
Android 音乐播放器 下一曲 连续跳几首歌 博客分类: android安卓
-
Android之ListView监听事件(10) 博客分类: Android初步 安卓;Listview事件监听
-
Android相册及小小秒表震动(17) 博客分类: Android初步 android相册GridView视图秒表震动时钟
-
Andrid之对话框百变篇(12) 博客分类: Android初步 安卓进度条事件处理对话框
-
Android之对话框百变篇(11) 博客分类: Android初步 安卓;对话框;监听事件;单选;复选框
-
Android 音乐播放器 下一曲 连续跳几首歌 博客分类: android安卓
-
关于Android studio中connot resolve symbol 'R'的问题 博客分类: Android初步学习 android