SelectFileWindow.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.ipaulpro.afilechooser;
  2. import android.content.Context;
  3. import android.graphics.drawable.ColorDrawable;
  4. import android.view.LayoutInflater;
  5. import android.view.MotionEvent;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.LinearLayout;
  9. import android.widget.PopupWindow;
  10. import com.sk.weichat.R;
  11. public class SelectFileWindow extends PopupWindow {
  12. private Button mInstant, mCancle, mDelete,mInfo;
  13. private View mMenuView;
  14. int type;
  15. public SelectFileWindow(Context context, View.OnClickListener itemsOnClick) {
  16. super(context);
  17. LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  18. mMenuView = inflater.inflate(R.layout.file_instant, null);
  19. mInstant = (Button) mMenuView.findViewById(R.id.btn_instant);
  20. mCancle = (Button) mMenuView.findViewById(R.id.btn_cancle);
  21. mDelete = (Button) mMenuView.findViewById(R.id.btn_delete);
  22. mInfo = (Button) mMenuView.findViewById(R.id.btn_information);
  23. this.type = type;
  24. // 取消按钮
  25. /*
  26. * btn_cancel.setOnClickListener(new OnClickListener() {
  27. *
  28. * public void onClick(View v) { //销毁弹出框 dismiss(); } });
  29. */
  30. // 设置按钮监听
  31. mInstant.setOnClickListener(itemsOnClick);
  32. mCancle.setOnClickListener(itemsOnClick);
  33. mDelete.setOnClickListener(itemsOnClick);
  34. mInfo.setOnClickListener(itemsOnClick);
  35. // 设置SelectPicPopupWindow的View
  36. this.setContentView(mMenuView);
  37. // 设置SelectPicPopupWindow弹出窗体的宽
  38. this.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
  39. // 设置SelectPicPopupWindow弹出窗体的高
  40. this.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
  41. // 设置SelectPicPopupWindow弹出窗体可点击
  42. this.setFocusable(true);
  43. // 设置SelectPicPopupWindow弹出窗体动画效果
  44. this.setAnimationStyle(R.style.Buttom_Popwindow);
  45. // 实例化一个ColorDrawable颜色为半透明
  46. ColorDrawable dw = new ColorDrawable(0xb0000000);
  47. // 设置SelectPicPopupWindow弹出窗体的背景
  48. this.setBackgroundDrawable(dw);
  49. // mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
  50. mMenuView.setOnTouchListener(new View.OnTouchListener() {
  51. public boolean onTouch(View v, MotionEvent event) {
  52. int height = mMenuView.findViewById(R.id.pop_layout).getTop();
  53. int bottom = mMenuView.findViewById(R.id.pop_layout).getBottom();
  54. int y = (int) event.getY();
  55. if (event.getAction() == MotionEvent.ACTION_UP) {
  56. if (y < height) {
  57. dismiss();
  58. } else if (y > bottom) {
  59. dismiss();
  60. }
  61. }
  62. return true;
  63. }
  64. });
  65. }
  66. }