首页 > 系统 > Android > 正文

Android简单实现自定义弹框(PopupWindow)

2019-12-12 03:09:12
字体:
来源:转载
供稿:网友

一:一般都是先上效果图

二:实现步骤:

1.xml布局实现

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/store_bgimg"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="214dp" android:layout_centerVertical="true" android:layout_marginLeft="31dp" android:layout_marginRight="31dp" android:background="@drawable/tkbjzj"> <TextView  android:id="@+id/tetle"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_centerHorizontal="true"  android:layout_marginTop="26dp"  android:text="七天连锁酒店"  android:textColor="#262626"  android:textSize="18dp" /> <TextView  android:id="@+id/textdz"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_below="@+id/tetle"  android:layout_centerHorizontal="true"  android:layout_marginTop="34dp"  android:text="你已领取本店7.5折优惠券"  android:textColor="#ea302e" /> <View  android:layout_width="match_parent"  android:layout_height="0.5dp"  android:layout_above="@+id/lineardb"  android:background="#e6e6e6" /> <LinearLayout  android:id="@+id/lineardb"  android:layout_width="match_parent"  android:layout_height="44dp"  android:layout_alignParentBottom="true">  <TextView  android:id="@+id/textwzdl"  android:layout_width="0dp"  android:layout_height="fill_parent"  android:layout_weight="1"  android:gravity="center"  android:text="我知道了"  android:textColor="#262626"  android:textSize="16dp" />  <TextView  android:id="@+id/textckxq"  android:layout_width="0dp"  android:layout_height="fill_parent"  android:layout_weight="1"  android:background="#f86c6a"  android:gravity="center"  android:text="查看详情"  android:textColor="#ffffff"  android:textSize="16dp" /> </LinearLayout> </RelativeLayout></RelativeLayout>

2.drawable文件下的转角,然后在布局引用

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 背景颜色 --> <solid android:color="#ffffff" /> <!-- 控制边界线颜色和大小 --> <stroke android:width="1dp" android:color="#ffffff" /> <!-- 控制圆角大小 --> <corners android:radius="4dp" /></shape>

3.activity的实现

/** * 弹框 */private View mPopupHeadViewy;//创建一个viewprivate PopupWindow mHeadPopupclly;//PopupWindowprivate TextView tetle, textdz;//title,打折private TextView textwzdl, textckxq;//我知道了,查看详情@SuppressWarnings("deprecation")private void popupHeadWindowcll() { mPopupHeadViewy = View.inflate(getActivity(), R.layout.tankuang_layout, null); tetle = (TextView) mPopupHeadViewy.findViewById(R.id.tetle); textdz = (TextView) mPopupHeadViewy.findViewById(R.id.textdz); textwzdl = (TextView) mPopupHeadViewy.findViewById(R.id.textwzdl); textckxq = (TextView) mPopupHeadViewy.findViewById(R.id.textckxq); mHeadPopupclly = new PopupWindow(mPopupHeadViewy, AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT, true); // 在PopupWindow里面就加上下面代码,让键盘弹出时,不会挡住pop窗口。 mHeadPopupclly.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); mHeadPopupclly.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); mHeadPopupclly.setBackgroundDrawable(new BitmapDrawable()); mHeadPopupclly.setOutsideTouchable(true); mHeadPopupclly.showAsDropDown(textviewid, 0, 0); textwzdl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {  mHeadPopupclly.dismiss(); } }); textckxq.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {  mHeadPopupclly.dismiss();  Toast.makeText(getActivity(), "查看详情", Toast.LENGTH_LONG).show(); } });}

注意:

1、

mHeadPopupclly = new PopupWindow(mPopupHeadViewy, AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT, true);

这句代码就是控制弹出框是铺满屏幕还是自适应

2、

mHeadPopupclly.showAsDropDown(textviewid, 0, 0);

这句话是这个弹框基于哪个控件之下,textviewid是控件名,后面两个是坐标

这是一个简单的自定义弹框,大神勿喷,有用的希望顶一下

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持武林网!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表