微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > android popupwindow UI进阶之弹窗的使用

android popupwindow UI进阶之弹窗的使用

时间:09-12 来源:互联网 点击:

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增色。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top