Android中PopupWindow的用法(位置、動畫、焦點)


轉載:http://orgcent.com/android-popupwindow-usage/

在Android中有很多級別的Window,不同級別的Window按照z-index方向分布。下面看看Android控件(view)PopupWindow的用法(位置、動畫、焦點)。

1、創建PopouWindow及相關參數設置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//創建一個包含自定義view的PopupWindow
private  PopupWindow makePopupWindow ( Context  cx )   {
    PopupWindow window ;
    window   =   new  PopupWindow (cx ) ;
    TextView contentView   =   new  TextView (cx ) ;
    contentView. setGravity (Gravity. CENTER ) ;
      final  Resources res   =  cx. getResources ( ) ;
      // contentView.setBackgroundColor(R.color.page_window_bgcolor);
      // window.setBackgroundDrawable(new
      // ColorDrawable(res.getColor(R.color.page_window_bgcolor)));
    contentView. setLayoutParams ( new  LayoutParams (LayoutParams. WRAP_CONTENT,
            LayoutParams. WRAP_CONTENT ) ) ;
      //設置PopupWindow顯示和隱藏時的動畫
    window. setAnimationStyle (R. style. AnimationFade ) ;
      //設置PopupWindow的大小(寬度和高度)
    window. setWidth (res. getDimensionPixelSize (R. dimen. page_window_width ) ) ;
    window. setHeight (res. getDimensionPixelSize (R. dimen. page_window_height ) ) ;
      //設置PopupWindow的內容view
    window. setContentView (contentView ) ;
          //設置PopupWindow外部區域是否可觸摸
        window. setOutsideTouchable ( true ) ;
      return  window ;
}

2、PopupWindow顯示和隱藏的動畫設置
XML配置代碼:

1
2
3
4
5
<!-- PopupWindow窗口淡入淡出動畫 -->
<style name="AnimationFade">
      <item name="android:windowEnterAnimation">@anim/fade_in </item>
      <item name="android:windowExitAnimation">@anim/fade_out </item>
</style>

JAVA代碼:

1
window. setAnimationStyle (R. style. AnimationFade ) ;

3、PopupWindow的焦點設置

1
2
3
window. setFocusable ( true ) ;   //設置PopupWindow可獲得焦點
window. setTouchable ( true ) ;   //設置PopupWindow可觸摸
window. setOutsideTouchable ( true ) ;   //設置非PopupWindow區域可觸摸

4、PopupWindow的顯示及顯示位置設置

1
2
window. showAtLocation ( ) ;
window. showAsDropDown ( ) ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM