一:一般都是先上效果图
二:实现步骤:
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的实现
/** * d框 */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,true); // 在PopupWindow里面就加上下面代码,让键盘d出时,不会挡住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); 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,true);
这句代码就是控制d出框是铺满屏幕还是自适应
2、
mheadPopupclly.showAsDropDown(textvIEwID,0);
这句话是这个d框基于哪个控件之下,textvIEwID是控件名,后面两个是坐标
这是一个简单的自定义d框,大神勿喷,有用的希望顶一下
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!
总结以上是内存溢出为你收集整理的Android简单实现自定义d框(PopupWindow)全部内容,希望文章能够帮你解决Android简单实现自定义d框(PopupWindow)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)