46、PopWindow工具类

46、PopWindow工具类

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/home_00" /> <corners android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp" android:topLeftRadius="20dp" android:topRightRadius="20dp" /> <stroke android:width="2dp" android:color="@color/home_00" /> </shape>

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:layout_centerVertical="true"> <RelativeLayout android:layout_width="280dp" android:layout_height="wrap_content" android:background="@drawable/pop_bg" android:orientation="vertical" android:id="@+id/pop_student" android:layout_centerVertical="true" android:layout_centerHorizontal="true"> <ImageView android:id="@+id/img_pop_close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/student_close" android:layout_alignParentRight="true" android:layout_marginTop="10dp" android:layout_marginRight="15dp" android:layout_alignParentTop="true" /> <LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/layout_head" android:background="@drawable/student_head_bg" android:layout_below="@id/img_pop_close" android:layout_marginTop="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:layout_centerHorizontal="true"> <com.jtx.iintroduce.widget.CircleImageView android:id="@+id/img_pop_head" android:layout_width="100dp" android:layout_height="100dp" android:src="@drawable/home_head" app:border_width="1dp" /> </LinearLayout> <TextView android:id="@+id/txt_pop_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/layout_head" android:textColor="@color/white" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" android:textSize="20sp" android:text="张三丰" /> <TextView android:id="@+id/txt_pop_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/txt_pop_name" android:textColor="@color/white" android:layout_centerHorizontal="true" android:layout_marginTop="15dp" android:textSize="16sp" android:text="13131313131" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/txt_pop_phone" android:gravity="center" android:background="@drawable/pop_bg_button" android:paddingTop="5dp" android:paddingBottom="5dp" android:layout_marginTop="40dp"> <Button android:id="@+id/btn_pop_call" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@color/transparent" android:textColor="@color/white" android:textSize="20sp" android:text="拨打电话" android:drawablePadding="13dp" android:drawableLeft="@drawable/student_phone2" /> </LinearLayout> </RelativeLayout> </RelativeLayout>

 

 1 public class StudentPopWindow extends PopupWindow implements View.OnClickListener {  2  3 private View popView = null;  4 private BaseActivity act = null;  5 private CircleImageView img_pop_head = null;  6 private TextView txt_pop_name = null;  7 private TextView txt_pop_phone = null;  8 private String strPhone = null;  9 11 public StudentPopWindow(BaseActivity act, String head, String name, String phone) { 12 super(act); 13 LayoutInflater inflater = (LayoutInflater) act 14  .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 15 popView = inflater.inflate(R.layout.pop_student, null); 16 17 this.act = act; 18 strPhone = phone; 19 popView.findViewById(R.id.btn_pop_call).setOnClickListener(this); 20 popView.findViewById(R.id.img_pop_close).setOnClickListener(this); 21 22 img_pop_head = (CircleImageView) popView.findViewById(R.id.img_pop_head); 23 txt_pop_name = (TextView) popView.findViewById(R.id.txt_pop_name); 24 txt_pop_phone = (TextView) popView.findViewById(R.id.txt_pop_phone); 25  act.mToolBitmap.display(img_pop_head, head); 26  txt_pop_name.setText(name); 27  txt_pop_phone.setText(phone); 28 29 30 //设置SelectPicPopupWindow的View 31 this.setContentView(popView); 32 //设置SelectPicPopupWindow弹出窗体的宽 33 this.setWidth(LayoutParams.MATCH_PARENT); 34 //设置SelectPicPopupWindow弹出窗体的高 35 this.setHeight(LayoutParams.MATCH_PARENT); 36 //设置SelectPicPopupWindow弹出窗体可点击 37 this.setFocusable(true); 38 39 //设置SelectPicPopupWindow弹出窗体动画效果 40 //this.setAnimationStyle(R.style.AnimBottom); 41 //实例化一个ColorDrawable颜色为半透明 42 ColorDrawable dw = new ColorDrawable(act.getResources().getColor(R.color.b_translucent)); 43 //设置SelectPicPopupWindow弹出窗体的背景 44 this.setBackgroundDrawable(dw); 45 46 //mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框 47 /*popView.setOnTouchListener(new OnTouchListener() { 49  public boolean onTouch(View v, MotionEvent event) { 51  int height = popView.findViewById(R.id.pop_student).getTop(); 52  int y=(int) event.getY(); 53  if (event.getAction() == MotionEvent.ACTION_UP) { 54  if (y < height) { 55  dismissPop(); 56  } 57  } 58  return true; 59  } 60  });*/ 61 62  } 63 65  @Override 66 public void onClick(View v) { 67 switch (v.getId()) { 68 case R.id.img_pop_close: 69  dismissPop(); 70 break; 71 case R.id.btn_pop_call: 72 Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel://" + strPhone)); 73  act.startActivity(intent); 74 break; 75  } 76  } 77 79 private void dismissPop() { 80 popView = null; 81 act = null; 82 img_pop_head = null; 83 txt_pop_name = null; 84 txt_pop_phone = null; 85 strPhone = null; 86  dismiss(); 87  } 88 }

 

String strHead = listData.get(position).photo; String strName = listData.get(position).name; String strPhone = listData.get(position).phone; popWindow = new StudentPopWindow(mActivity, strHead, strName, strPhone); popWindow.setHeight(ViewGroup.LayoutParams.MATCH_PARENT); popWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); //显示窗口 //设置layout在PopupWindow中显示的位置 popWindow.showAtLocation(view, Gravity.CENTER, 0, 0);

 

你可能感兴趣的:(window)