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,旋轉動畫等等這些效果的知識。


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