PopupWindow指しポップ

PopupWindow  ポップの完了の影響がどこポップアップウィンドウ固定小数点

ディスプレイ

 

このクラスは、ポップアップを実装するために使用されPopupWindow、その内容として、任意のビューのレイアウトに使用することができる、このポップアップボックスは、現在の活動の上に懸架されています。

まず、設定のXML ファイル(pop.xml)

<?XMLの バージョン = "1.0"  エンコード = "UTF-8" ?>

< のLinearLayout  のxmlns:アンドロイド = "http://schemas.android.com/apk/res/android"  

    アンドロイド:layout_width = "fill_parent"  

    アンドロイド:layout_height = "fill_parent"  

    アンドロイド:背景 = "#1 c1c1c1"  

    アンドロイド:重力 = "center_horizo​​ntal"  

    アンドロイド:オリエンテーション = 「縦」 >  

  

    < TextViewの  

        アンドロイド:ID = "@ + ID / btn_pop"

        アンドロイド:layout_width = "30DP"

        アンドロイド:layout_height = "30DP"

        アンドロイド:layout_margin = "10dip"

        アンドロイド:重力 = 「センター」

        アンドロイド:テキスト = " 弹窗"  />

  

</ のLinearLayout >

メインカテゴリに続いて、特定の操作

パッケージcom.example.popwindow。

 

輸入android.app.Activity;

輸入android.os.Bundle;

輸入android.view.Gravity;

輸入android.view.MotionEvent;

輸入android.view.View;

輸入android.view.ViewGroup;

輸入android.widget.PopupWindow;

 

パブリッククラスPopWindowActivityは{アクティビティを拡張します

 

プライベートビュービュー。  

プライベートPopupWindowのpopwindow。  

  

    @オーバーライド  

    保護されたボイドのonCreate(バンドルsavedInstanceState){  

        // TODO自動生成されたメソッドスタブ  

        super.onCreate(savedInstanceState)。  

        setContentView(R.layout.activity_main)。

        // カスタムメソッド

        initPopupWindow();  

    }  

 

  

    //  達成onTouchEvent 方法を

    パブリックブールonTouchEvent(MotionEventイベント){

        //  プレスが動作している場合

        IF(event.getAction()== MotionEvent.ACTION_DOWN){

         // カスタム取得方法Xは、Y 座標

         INT X =(INT)event.getX();

         INT Y =(INT)event.getY();

            showXY(X、Y)

        }

        super.onTouchEvent(イベント)を返します。

    }

    プライベートボイドshowXY(フロートX、フロートY){

    

     // 最初のクリックとのギャップがなる[続行]をクリックしそれが中に配置する必要があるので、Y -軸の動作

     y軸= 200;

     IF(popwindow.isShowing()){

     popw​​indow.dismiss();

     // 最初のクリックが正常に実行されたときにそのためが、第2クリックが異なる位置があるだろうそう軸の目的に応じて減少します

     popw​​indow.showAsDropDown(ビュー、(INT)X、(INT)Y);

     // 別の方法は、定義することによってであるX、Y、操作軸を使用してshowAtLocationを別の場所を指定し、ポップアップ解像度アプローチを適合しました

     /*popwindow.showAtLocation(v、Gravity.CENTER、(int型)event.getRawX() - ×1

/ 2、(INT)event.getRawY() - Y1 / 2); / *

        } そうしないと {

         // クリックは最初のクリックでなぜなら

         そして+ = 200。

         popw​​indow.showAsDropDown(ビュー、(INT)X、(INT)Y);

         // 別の方法は、定義することによってであるX、Y、操作軸を使用してshowAtLocationを別の場所を指定し、ポップアップ解像度アプローチを適合しました

     /*popwindow.showAtLocation(v、Gravity.CENTER、(int型)event.getRawX() - ×1

/ 2、(INT)event.getRawY() - Y1 / 2); / *

            

        }

    

    }

    

    プライベート無効initPopupWindow(){

     // ウィンドウをポップアップするのでこのフォームすることができビューを、負荷にクラスローダの中に置きます

        ビュー= this.getLayoutInflater()(R.layout.pop、null)を膨張させます。

        // インスタンス化PopWindow

        popw​​indow =新しいPopupWindow(ビュー、ViewGroup.LayoutParams.WRAP_CONTENT、

                ViewGroup.LayoutParams.WRAP_CONTENT);

    }

}

公開された40元の記事 ウォン称賛7 ビュー10000 +

おすすめ

転載: blog.csdn.net/sj_1993/article/details/50790937