package com.partynetwork.myview.mytoast;
import com.partynetwork.dataprovider.util.DisplayUtil;
import com.partynetwork.iparty.R;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
public class MenuBottomPop extends PopupWindow {
private static final int TEXTSIXE = 20;
private static final int PADDINGLEFT = 0;
private static final int PADDINGTOP = 7;
private static final int PADDINGRIGHT = 0;
private static final int PADDINGBOTTOM = 7;
private static final int MARGINLEFT = 20;
private static final int MARGINTOP = 0;
private static final int MARGINRIGHT = 20;
private static final int MARGINBOTTOM = 5;
private TextView cancelBtn;
private LinearLayout moreLl;;
private View mMenuView;
private Context context;
/**
*
* @param context
* @param str
* 弹出的选项字符串数组
* @param clickListener
* 返回的监听
*/
public MenuBottomPop(Context context, String[] str,
OnClickListener clickListener) {
super(context);
this.context = context;
mMenuView=View.inflate(context, R.layout.menu_bottom_pop, null);
cancelBtn = (TextView) mMenuView.findViewById(R.id.cancel_tv);
moreLl = (LinearLayout) mMenuView.findViewById(R.id.more_ll);
// 取消按钮
cancelBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 销毁弹出框
dismiss();
}
});
for (int i = 0; i < str.length; i++) {
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(dp2px(MARGINLEFT), dp2px(MARGINTOP),
dp2px(MARGINRIGHT), dp2px(MARGINBOTTOM));
TextView tv = new TextView(context);
tv.setLayoutParams(lp);
tv.setBackgroundResource(R.drawable.menu_bottom_pop_more);
tv.setPadding(dp2px(PADDINGLEFT), dp2px(PADDINGTOP),
dp2px(PADDINGRIGHT), dp2px(PADDINGBOTTOM));
tv.setTextColor(tv.getResources().getColorStateList(
R.drawable.menu_bottom_pop_cancel_color));
tv.setTextSize(TEXTSIXE);
tv.setGravity(Gravity.CENTER);
tv.setText(str[i]);
tv.setTag(str[i]);
tv.setOnClickListener(clickListener);
moreLl.addView(tv);
}
// 设置SelectPicPopupWindow的View
this.setContentView(mMenuView);
// 设置SelectPicPopupWindow弹出窗体的宽
this.setWidth(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体的高
this.setHeight(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体可点击
this.setFocusable(true);
// 设置SelectPicPopupWindow弹出窗体动画效果
this.setAnimationStyle(R.style.AnimBottom);
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0x00000000);
// 设置SelectPicPopupWindow弹出窗体的背景
this.setBackgroundDrawable(dw);
// mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
// mMenuView.setOnTouchListener(new OnTouchListener() {
//
// public boolean onTouch(View v, MotionEvent event) {
//
// int height = mMenuView.findViewById(R.id.pop_ll).getTop();
// int y = (int) event.getY();
// if (event.getAction() == MotionEvent.ACTION_UP) {
// if (y < height) {
// dismiss();
// }
// }
// return true;
// }
// });
}
public void showAtLocation(View parent) {
super.showAtLocation(parent,
Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
}
private int dp2px(int dp) {
return DisplayUtil.dip2px(context, dp);
}
}