Android之简单自定义PopupWindow弹框实现

来源:互联网 发布:上证指数数据成交量 编辑:程序博客网 时间:2024/05/16 15:16

-----------------转载请注明出处:http://blog.csdn.net/android_cll

一:一般都是先上效果图、



二:实现步骤:

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是控件名,后面两个是坐标
这是一个简单的自定义弹框,大神勿喷,有用的希望顶一下、、、

3 0
原创粉丝点击