Android编程实现长按弹出选项框View进行操作的方法

本文实例讲述了Android编程实现长按弹出选项框View进行操作的方法。分享给大家供大家参考,具体如下:

长按弹出选项框View进行操作

主要代码解释

private void showPopWindows(View v) {
    /** pop view */
    View mPopView = LayoutInflater.from(this).inflate(R.layout.popup,null);
    final PopupWindow mPopWindow = new PopupWindow(mPopView,ViewGroup.LayoutParams.WRAP_CONTENT,true);
    /** set */
    mPopWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    /** 这个很重要,获取弹窗的长宽度 */
    mPopView.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED);
    int popupWidth = mPopView.getMeasuredWidth();
    int popupHeight = mPopView.getMeasuredHeight();
    /** 获取父控件的位置 */
    int[] location = new int[2];
    v.getLocationOnScreen(location);
    /** 显示位置 */
    mPopWindow.showAtLocation(v,Gravity.NO_GRAVITY,(location[0] + v.getWidth() / 2) - popupWidth / 2,location[1]
        - popupHeight);
    mPopWindow.update();
    final String copyTxt = (String) v.getTag();
    mPopView.findViewById(R.id.tv_copy_txt).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        copyToClip(copyTxt);
        if (mPopWindow != null) {
          mPopWindow.dismiss();
        }
      }
    });
}

layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/pop_bg" >
  <TextView
    android:id="@+id/tv_copy_txt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:text="复制邀请码"
    android:textColor="@android:color/white"
    android:textSize="12sp" />
</LinearLayout>

效果图:

微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!