2019獨角獸企業重金招聘Python工程師標準>>>
PopupWindow在Android.widget包下,項目中經常會使用到PopupWindow做菜單選項,? PopupWindow這個類用來實現一個彈出框,可以使用任意布局的View作為其內容,這個彈出框是懸浮在當前activity之上的。
效果圖:
MainActivity.java
public class MainActivity extends Activityimplements OnClickListener {private PopupWindow mPopWindow;private View parentView;private Context context;ImageView mImageViewBar;@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);context = this;initView();}private void initView() {// TODOAuto-generated method stubparentView =getLayoutInflater().inflate(R.layout.activity_main,null);mImageViewBar =(ImageView) findViewById(R.id.menu);mImageViewBar.setOnClickListener(this);showPopupWindow();}private void showPopupWindow() {LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View contentView =inflater.inflate(R.layout.popuplayout,null);mPopWindow = newPopupWindow(contentView);mPopWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);mPopWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);mPopWindow = newPopupWindow();// 設置SelectPicPopupWindow的ViewmPopWindow.setContentView(contentView);// 設置SelectPicPopupWindow彈出窗體的寬mPopWindow.setWidth(LayoutParams.WRAP_CONTENT);// 設置SelectPicPopupWindow彈出窗體的高mPopWindow.setHeight(LayoutParams.WRAP_CONTENT);// 設置SelectPicPopupWindow彈出窗體可點擊mPopWindow.setFocusable(true);mPopWindow.setOutsideTouchable(true);// 刷新狀態mPopWindow.update();// 實例化一個ColorDrawable顏色為半透明ColorDrawable dw = new ColorDrawable(0000000000);// 點back鍵和其他地方使其消失,設置了這個才能觸發OnDismisslistener,設置其他控件變化等操作mPopWindow.setBackgroundDrawable(dw);contentView.findViewById(R.id.memu1).setOnClickListener(this);contentView.findViewById(R.id.memu2).setOnClickListener(this);contentView.findViewById(R.id.memu3).setOnClickListener(this);}@Overridepublic void onClick(View v) {int id =v.getId();switch (id) {case R.id.menu:mPopWindow.showAsDropDown(mImageViewBar);break;case R.id.memu1: {Toast.makeText(context,"消息", Toast.LENGTH_SHORT).show();mPopWindow.dismiss();}break;case R.id.memu2: {Toast.makeText(context,"收藏", Toast.LENGTH_SHORT).show();mPopWindow.dismiss();}break;case R.id.memu3: {Toast.makeText(context,"首頁", Toast.LENGTH_SHORT).show();mPopWindow.dismiss();}break;}}@Overrideprotected void onDestroy() {// TODOAuto-generated method stubsuper.onDestroy();mPopWindow.dismiss();}}
?
?源代碼下載