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_horizontal"
アンドロイド:オリエンテーション = 「縦」 >
< 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()){
popwindow.dismiss();
// 最初のクリックが正常に実行されたときにそのため、が、第2クリックが異なる位置があるだろう、そう軸の目的に応じて減少します
popwindow.showAsDropDown(ビュー、(INT)X、(INT)Y);
// 別の方法は、定義することによってであるX、Y、操作軸を、使用してshowAtLocationを別の場所を指定し、ポップアップ解像度アプローチを適合しました
/*popwindow.showAtLocation(v、Gravity.CENTER、(int型)event.getRawX() - ×1
/ 2、(INT)event.getRawY() - Y1 / 2); / *
} そうしないと {
// クリックは最初のクリックで、なぜなら
そして+ = 200。
popwindow.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
popwindow =新しいPopupWindow(ビュー、ViewGroup.LayoutParams.WRAP_CONTENT、
ViewGroup.LayoutParams.WRAP_CONTENT);
}
}