效果图:
   
item_add.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#D1D1D1" android:orientation="vertical" > <Button android:id="@+id/album" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="从相册中选取图片" android:gravity="center" android:textColor="#595959" android:textSize="15sp" android:background="@drawable/kuang_grey_white" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:layout_marginTop="10dp" /> <Button android:id="@+id/camera" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="拍照选取图片" android:gravity="center" android:textSize="15sp" android:textColor="#595959" android:background="@drawable/kuang_grey_white" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:layout_marginTop="5dp" /> <Button android:id="@+id/cancel" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="取消" android:textSize="15sp" android:gravity="center" android:textColor="#595959" android:background="@drawable/kuang_grey_white" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="10dp" android:background="#D1D1D1" /> </LinearLayout>
kuang_grey_white.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <stroke android:width="1px" android:color="@color/view" />
        <solid android:color="@color/white" />填充色
        <corners android:radius="8dp" />
</shape>
方法:
public void showpopupwindow() { LayoutInflater inflater = LayoutInflater.from(PersonalInfoActivity.this); View v = inflater.inflate(R.layout.item_add, null); Button album = (Button) v.findViewById(R.id.album); Button camera = (Button) v.findViewById(R.id.camera); Button cancel = (Button) v.findViewById(R.id.cancel); album.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 相册选择图片 //setalbumImg(); } }); camera.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // setcameraImg(type2); } }); cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub pw.dismiss(); } }); // 一般来说,我们在onCreate里面得到的控件的宽高全是0.采用下面的方法,可以得到真实的宽高 int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); v.measure(w, h); int v_h = v.getMeasuredHeight(); int v_w = v.getMeasuredWidth(); pw = new PopupWindow(v, LayoutParams.MATCH_PARENT, v_h); pw.setFocusable(true); }
使用:
private PopupWindow pw;
showpopupwindow();
			pw.showAtLocation(findViewById(R.id.m), Gravity.BOTTOM, 0, 0);//m是整个当前的根布局id
 
                     
                    
                 
                    
                 
         
