您的位置:首页 > 移动开发 > Android开发

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

2017-01-16 09:39 92 查看
-----------------转载请注明出处: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;//创建一个view
private PopupWindow mHeadPopupclly;//PopupWindow
private 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是控件名,后面两个是坐标
这是一个简单的自定义弹框,大神勿喷,有用的希望顶一下、、、
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息