天天看點

Android PopupWindow使用1、含義2、差別3、代碼說明4、結語

1、含義

       寫的第一篇技術文章還有點小激動,話說popupwindow顧名思義就是類似于對話框樣式布局顯示,但是卻有别于對話框,到底哪裡有差別呢,還請客官您細細觀看。

2、差別

1、對話框位置相對來說比較固定,而popupwindow位置相對随意一些,可以自由控制。

2、對話框是線程非阻塞的,而popupwindow是線程阻塞的。

3、代碼說明

      1、 話不多說,規矩我懂,先上圖(樣式比較醜還請您見諒):

Android PopupWindow使用1、含義2、差別3、代碼說明4、結語
Android PopupWindow使用1、含義2、差別3、代碼說明4、結語

2、先看popupwindow代碼,容我細細道來:

1)、首先自定義一個popupwindow

public class AddPopuwindow extends PopupWindow {

public View mView;

public AddPopuwindow(Activity context) {

LayoutInflater inflater = (LayoutInflater) context

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

mView = inflater.inflate(R.layout.popuwindow_dialog, null);

int height = context.getWindowManager().getDefaultDisplay().getHeight();

int width = context.getWindowManager().getDefaultDisplay().getWidth();

// 設定選擇的popuwndow的View

this.setContentView(mView);

// 設定彈出的popuwindow的寬

this.setWidth(width / 2 + 50);

// 設定彈出的popuwndow的高

this.setHeight(LayoutParams.WRAP_CONTENT);

// 設定popuwindow的彈出窗體是否可以點選

this.setFocusable(true);

this.setOutsideTouchable(true);

// 重新整理狀态

this.update();

// 執行個體化一個colorDrawable顔色為半透明

ColorDrawable colorDrawable = new ColorDrawable(0000000000);

// 點選傳回鍵和其他地方使其消失,設定了這個才能觸發OnDismissListener,設定其他控件變化等操作

this.setBackgroundDrawable(colorDrawable);

// 設定SelectPicPopupWindow彈出窗體動畫效果

this.setAnimationStyle(R.style.AnimationPreview);

// 綁定布局

LinearLayout addTaskLayout = (LinearLayout) mView

.findViewById(R.id.add_task_layout);

addTaskLayout.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View view) {

// 關閉popuwindow

AddPopuwindow.this.dismiss();

}

});

//顯示popupwindow

public void showPopuwindow(View view) {

if (!this.isShowing()) {

// 以下拉方式顯示popuwindow

this.showAsDropDown(view, view.getLayoutParams().width / 2, 18);

} else {

this.dismiss();

2、怎麼調用呢?當然是綁定布局然後直接調用了

Button mBtnAdd;

mBtnSet.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

AddPopuwindow popuwindow = new AddPopuwindow(MainActivity.this);

popuwindow.showPopuwindow(mBtnAdd);

3、布局檔案(圖檔):

Android PopupWindow使用1、含義2、差別3、代碼說明4、結語

布局檔案

4、結語

     因為小弟第一次寫技術類文章,還有排版什麼的,不太熟悉,是以請各位看官多多見諒,請各位輕點打臉。

繼續閱讀