日常开发过程中对于PopupWindown的使用也是比较多的。这里给大家展示一下PopupWindow的使用。
修改activity_main.xml布局:
新建popup_window.xml布局文件
自定义PopupWindow类PopWindow
package com.syz.mypopupwindow;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.PopupWindow;
public class PopWindow extends PopupWindow{
private View conentView;
public PopWindow(final Activity context){
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
conentView = inflater.inflate(R.layout.popup_window, null);
int h = context.getWindowManager().getDefaultDisplay().getHeight();
int w = context.getWindowManager().getDefaultDisplay().getWidth();
// 设置SelectPicPopupWindow的View
this.setContentView(conentView);
// 设置SelectPicPopupWindow弹出窗体的宽
this.setWidth(w / 2 + 40);
// 设置SelectPicPopupWindow弹出窗体的高
this.setHeight(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体可点击
this.setFocusable(true);
this.setOutsideTouchable(true);
// 刷新状态
this.update();
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0000000000);
// 点back键和其他地方使其消失,设置了这个才能触发onDismisslistener ,设置其他控件变化等操作
this.setBackgroundDrawable(dw);
// mPopupWindow.setAnimationStyle(android.R.style.Animation_Dialog);
// 设置SelectPicPopupWindow弹出窗体动画效果
this.setAnimationStyle(R.style.AnimationPreview);
conentView.findViewById(R.id.about).setonClickListener(new onClickListener() {
@Override
public void onClick(View arg0) {
//do something you need here
PopWindow.this.dismiss();
}
});
conentView.findViewById(R.id.ability_logout).setonClickListener(new onClickListener() {
@Override
public void onClick(View arg0) {
// do something before signing out
context.finish();
PopWindow.this.dismiss();
}
});
conentView.findViewById(R.id.settings).setonClickListener(new onClickListener() {
@Override
public void onClick(View arg0) {
// do something you need here
PopWindow.this.dismiss();
}
});
}
public void showPopupWindow(View parent) {
if (!this.isShowing()) {
// 以下拉方式显示popupwindow
this.showAsDropDown(parent, parent.getLayoutParams().width / 2, 5);
} else {
this.dismiss();
}
}
}
添加自定义PopupWindow所需的style
AnimationPreview
- @anim/fade_in
- @anim/fade_out
添加style所需的动画
fade_in.xml
fade_out.xml
最后在MainActivity类中使用
package com.syz.mypopupwindow;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements onClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.rl_more).setonClickListener(this);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.rl_more){
PopWindow popWindow = new PopWindow(this);
popWindow.showPopupWindow(findViewById(R.id.rl_more));
}
}
}
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



