android popupwindow UI进阶之弹窗的使用
tView(R.layout.main); bt1 = (Button)findViewById(R.id.bt1); bt2 = (Button)findViewById(R.id.bt2); bt3 = (Button)findViewById(R.id.bt3); bt4 = (Button)findViewById(R.id.bt4); bt5 = (Button)findViewById(R.id.bt5); layout = View.inflate(this, R.layout.window, null); gv = (GridView) layout.findViewById(R.id.gv); MyAdapter adapter=new MyAdapter(this,items,icons); gv.setAdapter(adapter); bt1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAsDropDown(v);//以这个Button为anchor(可以理解为锚,基准),在下方弹出 }}); bt2.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAsDropDown(v,20,-20);//横轴偏移20,纵轴-20,一个状态栏的长度 }}); bt3.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAtLocation(PopWindow.this.findViewById(R.id.rl), Gravity.CENTER, 0, 0);//在屏幕居中,无偏移 }}); bt4.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAtLocation(PopWindow.this.findViewById(R.id.rl), Gravity.TOP | Gravity.LEFT, 20, 20);//在屏幕顶部|居右,带偏移 }}); bt5.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { if (mPop != null) { mPop.dismiss(); } }}); } public boolean onKeyDown(int keyCode, KeyEvent event){ //截获按键事件 if(keyCode == KeyEvent.KEYCODE_MENU){ initPopWindow(); mPop.showAtLocation(this.findViewById(R.id.rl), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0); //在屏幕底部 }else if(keyCode == KeyEvent.KEYCODE_BACK){ if(mPop.isShowing()){ mPop.dismiss(); }else{ System.exit(0); } } return false; } } 只有一个GridView。main.xml就不贴了,就几个Button。 当然弹窗的作用不仅限于menu,你还可以用他做的更多来为你UI增色。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)