PopUpWindow不一定只能从底部弹出

我们使用的时候,经常会用到一些弹出的小弹窗。我们用到的是PopupWindow,但是popupwindow不仅仅可以从底部进行弹出。

其实我们完全可以根据自己的需求来对弹窗进行从X方向的右到左的弹出,左到右的弹出等等等等。

在不了解的情况下,一脸懵逼。了解以后,其实就是popupwindow的弹出方式的问题以及风格的问题。

参照:

《Android自定义控件三部曲文章索引》http://blog.csdn.net/harvic880925/article/details/50995268


那么,我们就style.xml。

<style name="AnimationRightFade">
    <item name="android:windowEnterAnimation">@anim/out_righttoleft</item>
    <item name="android:windowExitAnimation">@anim/in_lefttoright</item>
</style>
我这举个例子而已,是从右边弹出,消失的时候原路返回。

anim中,定义这俩xml。

in_lefttoright.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="100"
        android:fromXDelta="1"
        android:toXDelta="0"
        />
</set>
out_righttoleft.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


    <translate
        android:duration="100"
        android:fromXDelta="0"
        android:toXDelta="1" />
</set>

看一下就知道其实就是from和to的事情了,可以X方向的从哪到哪,也可以是从Y方向的。

bottom_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="200"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="200"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>


bottom_out.xml:

<?xml version="1.0" encoding="utf-8"?><!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">


    <translate
        android:duration="200"
        android:fromYDelta="0"
        android:toYDelta="50%p" />
    <alpha
        android:duration="200"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>
大家参考根据自己的需求来进行编写就行。

网上也有很多关于这方面的东西,可以参考对照一下translate还有alpha,旋转动画等等这些效果的知识。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章