TextView的点击事件
效果图
<TextView
android:id="@+id/text"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="圣诞快乐"
android:textColor="@color/purple_200"
/>
TextView tv=findViewById(R.id.text);
// 点击事件
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showPopWindows(view);
}
});
//写一个方法
private void showPopWindows(View v) {
/** pop view */
View mPopView = LayoutInflater.from(this).inflate(R.layout.item, null);
final PopupWindow mPopWindow = new PopupWindow(mPopView, ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, true);
/** set */
mPopWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
/** 这个很重要 ,获取弹窗的长宽度 */
mPopView.measure(View.MeasureSpec.UNSPECIFIED, View.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) {
if (mPopWindow != null) {
mPopWindow.dismiss();
}
}
});
}
- item布局
android:background="@drawable/aa 自己随便给背景图
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/aa"
>
<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:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textColor="@android:color/holo_red_dark"
android:textSize="12sp" />
</RelativeLayout>