最后的结果就是上图的样式,
首先要有个上图的背景图,其他就很简单。
下面是代码
首先pop的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/menu_down"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="30dp"
android:id="@+id/layout_station"
android:layout_marginTop="10dp"
android:padding="5dp">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_marginLeft="7dp"
android:scaleType="fitCenter"
android:layout_centerVertical="true"
android:background="@drawable/find_serve_white"
android:id="@+id/imageView29"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="14dp"
android:layout_marginLeft="5dp"
android:layout_centerVertical="true"
android:text="服务站点"
android:layout_alignBottom="@+id/imageView29"
android:layout_toRightOf="@+id/imageView29"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="30dp"
android:id="@+id/layout_drug"
android:orientation="horizontal"
android:padding="5dp">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:scaleType="fitCenter"
android:background="@drawable/find_drug_drug"
android:id="@+id/imageView30"
android:layout_marginLeft="7dp"
android:layout_centerVertical="true"
android:layout_alignParentTop="true" android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" android:layout_marginStart="16dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="14dp"
android:layout_marginLeft="5dp"
android:layout_centerVertical="true"
android:text="药品"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/imageView30" android:layout_toEndOf="@+id/imageView30"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="30dp"
android:id="@+id/layout_disease"
android:orientation="horizontal"
android:padding="5dp">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:scaleType="fitCenter"
android:background="@drawable/find_disease_white"
android:id="@+id/imageView31"
android:layout_centerVertical="true"
android:layout_marginLeft="7dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="14dp"
android:layout_marginLeft="5dp"
android:layout_centerVertical="true"
android:text="疾病"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/imageView31" android:layout_toEndOf="@+id/imageView31"/>
</RelativeLayout>
</LinearLayout> 图片就不上传了 颜色大家也可以自己定
之后就是PopWinMenu 的类
public class PopWinMenu extends PopupWindow {
private View mainView;
private RelativeLayout layoutStation, layoutDrug,layoutDis;
public PopWinMenu(Activity paramActivity, View.OnClickListener paramOnClickListener, int paramInt1, int paramInt2){
super(paramActivity);
//窗口布局
mainView = LayoutInflater.from(paramActivity).inflate(R.layout.layout_popmenu, null);
//分享布局
layoutStation = ((RelativeLayout)mainView.findViewById(R.id.layout_station));
//复制布局
layoutDrug = (RelativeLayout)mainView.findViewById(R.id.layout_drug);
layoutDis = (RelativeLayout)mainView.findViewById(R.id.layout_disease);
//设置每个子布局的事件监听器
if (paramOnClickListener != null){
layoutStation.setOnClickListener(paramOnClickListener);
layoutDrug.setOnClickListener(paramOnClickListener);
layoutDis.setOnClickListener(paramOnClickListener);
}
setContentView(mainView);
//设置宽度
setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
//设置高度
setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
//设置显示隐藏动画
setAnimationStyle(R.style.AnimTools);
//设置背景透明
setBackgroundDrawable(new ColorDrawable(0));
}
}最后就是在Activity中调用Pop了
popWinMenu = new PopWinMenu(getActivity(),ClickListenerMenu,
searchLin.getWidth()/2,0);
int[] location = new int[2];
searchLin.getLocationOnScreen(location);
popWinMenu.showAtLocation(searchLin, Gravity.NO_GRAVITY, location[0],location[1]+searchLin.getHeight()-popWinMenu.getHeight());
spinnerImg.setClickable(false);
弹出框事件:
/**弹出框的事件*/
private View.OnClickListener ClickListenerMenu = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.layout_station:
searchType=1;
spinner.setText("站点");
popWinMenu.dismiss();
spinnerImg.setClickable(true);
break;
case R.id.layout_drug:
searchType=2;
spinner.setText("药品");
popWinMenu.dismiss();
spinnerImg.setClickable(true);
break;
case R.id.layout_disease:
searchType=3;
spinner.setText("疾病");
popWinMenu.dismiss();
spinnerImg.setClickable(true);
break;
}
}
};好了 基本上都可以了。
908

被折叠的 条评论
为什么被折叠?



