package Ġcom . man u . mp op up window Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . Popup Window Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . man u . mp op up window . databinding . Activity Main Binding Ċ /** Ċ Ġ* Ġ@ Desc : ĠMainActivity Ċ Ġ* Ġ@ Author : Ġj z man Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Target : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm ContentView : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : Activity Main Binding ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġm Target Ġ= ĠfindViewById ( R . id . iv Target ) ĊĠĠĠĠĠĠĠ Ġm ContentView Ġ= ĠLayoutInflater . from ( this ). inflate ( R . layout . popup _ window _ layout , Ġnull ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Top Left . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Top Center . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Top Right . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Center . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Center Left Top . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Center Left Bottom . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Center Right Top . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Center Right Bottom . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Bot ton Left . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Bot ton Center . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Bot ton Right . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn From Top . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn From Bottom . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Top Left Ġ-> Ġshow Popup Window ( Type Gravity . TOP _ LEFT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Top Center Ġ-> Ġshow Popup Window ( Type Gravity . TOP _ CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Top Right Ġ-> Ġshow Popup Window ( Type Gravity . TOP _ RIGHT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Center Ġ-> Ġshow Popup Window ( Type Gravity . CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Center Left Top Ġ-> Ġshow Popup Window ( Type Gravity . CENTER _ LEFT _ TOP ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Center Left Bottom Ġ-> Ġshow Popup Window ( Type Gravity . CENTER _ LEFT _ BOTTOM ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Center Right Top Ġ-> Ġshow Popup Window ( Type Gravity . CENTER _ RIGHT _ TOP ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Center Right Bottom Ġ-> Ġshow Popup Window ( com . man u . mp op up window . Type Gravity . CENTER _ RIGHT _ BOTTOM ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Bot ton Left Ġ-> Ġshow Popup Window ( Type Gravity . BOTTOM _ LEFT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Bot ton Center Ġ-> Ġshow Popup Window ( Type Gravity . BOTTOM _ CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Bot ton Right Ġ-> Ġshow Popup Window ( Type Gravity . BOTTOM _ RIGHT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn From Top Ġ-> Ġshow Popup Window ( Type Gravity . FROM _ TOP ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn From Bottom Ġ-> Ġshow Popup Window ( Type Gravity . FROM _ BOTTOM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å°ģè£ħ åĲİçļĦ ä½¿çĶ¨ æĸ¹å¼ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Popup Window ( gravity : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠM Popup Window . create ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setLayout Id ( R . layout . popup _ window _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setBackground Drawable ( Color Drawable ( Color . GREEN )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Animation Style ( R . style . Popup Window Scale Theme ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Dismiss Listener Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTarget ( m Target ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Gravity ( gravity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åİŁ æĿ¥çļĦ ä½¿çĶ¨ æĸ¹å¼ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Origin Popup Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ContentView . findViewById < View >( R . id . tv Camera ). setOnClickListener Ġ{ ĠToast . makeText ( this @ MainActivity , Ġ" çĽ¸ æľº ", ĠToast . LENGTH _ SHORT ). show () Ġ} ĊĠĠĠĠĠĠĠ Ġm ContentView . findViewById < View >( R . id . tv Photo ). setOnClickListener Ġ{ ĠToast . makeText ( this @ MainActivity , Ġ" çĽ¸ åĨĮ ", ĠToast . LENGTH _ SHORT ). show () Ġ} ĊĠĠĠĠĠĠĠ Ġ// åĪĽå»º Popup Window ĊĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= ĠPopup Window ( this ) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æĺ¾ç¤º View ĊĠĠĠĠĠĠĠ Ġwindow . content View Ġ= Ġm ContentView ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®½ é«ĺ ĊĠĠĠĠĠĠĠ Ġwindow . width Ġ= ĠWindow Manager . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġwindow . height Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® èĥĮæĻ¯ ĊĠĠĠĠĠĠĠ Ġwindow . setBackground Drawable ( Color Drawable ( Color . GRAY )) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® Popup Window ä¹ĭ å¤ĸ çļĦ è§¦ æĳ ¸ äºĭä»¶ ĊĠĠĠĠĠĠĠ Ġwindow . is Outside Touchable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® Popup Window æ¶Ī å¤± çļĦ çĽĳåĲ¬ åĻ¨ ĊĠĠĠĠĠĠĠ Ġwindow . setOn Dismiss Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĽĳåĲ¬ Popup Window çļĦ æ¶Ī å¤± ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® Popup Window ä¸ĬçļĦ è§¦ æĳ ¸ äºĭä»¶ ĊĠĠĠĠĠĠĠ Ġwindow . is Touchable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® Popup Window å¼¹ åĩº åĬ¨çĶ» ĊĠĠĠĠĠĠĠ Ġwindow . animation Style Ġ= ĠR . style . Popup Window Translate Theme From Bottom ĊĠĠĠĠĠĠĠ Ġwindow . show At Location ( m Target , ĠGr avity . BOTTOM Ġor ĠGr avity . CENTER _ HORIZONTAL , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} Ċ }