1,pop类
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import com.yunyou.meyao.R;
public class TakePhotoPopWin extends PopupWindow {
private Context mContext;
private View view;
private ImageView zuo, shang;
private RelativeLayout pop, pop1, pop3;
public TakePhotoPopWin(Context mContext, View.OnClickListener itemsOnClick) {
this.view = LayoutInflater.from(mContext).inflate(R.layout.take_photo_pop, null);
zuo = (ImageView) view.findViewById(R.id.zuo);
shang = (ImageView) view.findViewById(R.id.shang);
pop = (RelativeLayout) view.findViewById(R.id.pop);
pop1 = (RelativeLayout) view.findViewById(R.id.pop1);
pop3 = (RelativeLayout) view.findViewById(R.id.pop3);
// 设置按钮监听
zuo.setOnClickListener(itemsOnClick);
shang.setOnClickListener(itemsOnClick);
pop.setOnClickListener(itemsOnClick);
pop1.setOnClickListener(itemsOnClick);
pop3.setOnClickListener(itemsOnClick);
// 设置外部可点击
this.setOutsideTouchable(true);
// mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
this.view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int height = view.findViewById(R.id.pop_layout).getTop();
int y = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_UP) {
if (y < height) {
dismiss();
}
}
return true;
}
});
/* 设置弹出窗口特征 */
// 设置视图
this.setContentView(this.view);
// 设置弹出窗体的宽和高
this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
// 设置弹出窗体可点击
this.setFocusable(true);
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0xb0000000);
// 设置弹出窗体的背景
this.setBackgroundDrawable(dw);
// 设置弹出窗体显示时的动画,从底部向上弹出
this.setAnimationStyle(R.style.take_photo_anim);
}
}
2,使用的类里调用方法
private void showpopwindows() {
takePhotoPopWin = new TakePhotoPopWin(this, onClickListener);
takePhotoPopWin.showAtLocation(findViewById(R.id.main_view), Gravity.CENTER, 0, 0);//这个类的整体布局的id
}
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.zuo:
startActivity(new Intent(MainActivity.this, ZhaoPin.class));
takePhotoPopWin.dismiss();
break;
case R.id.shang://商品
startActivity(new Intent(MainActivity.this, ChanPin.class));
takePhotoPopWin.dismiss();
break;
case R.id.pop:
case R.id.pop1:
case R.id.pop3:
takePhotoPopWin.dismiss();
break;
}
}
};