选择相册或相机显示效果ui

方法一: 

<LinearLayout
        android:id="@+id/ll_bottom_pop"
        android:layout_width="match_parent"
        android:layout_height="227dp"
        android:layout_gravity="bottom"
        android:layout_marginBottom="-227dp"
        android:background="@drawable/change_user_header_pop_bg"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tv_take_photo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="18dp"
            android:text="拍照"
            android:textColor="@color/color44"
            android:textSize="16sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            android:background="#e9e9e9" />

        <TextView
            android:id="@+id/tv_select_from_album"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="18dp"
            android:text="从相册选取"
            android:textColor="@color/color44"
            android:textSize="16sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            android:background="#e9e9e9" />

        <TextView
            android:id="@+id/tv_cancel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="18dp"
            android:text="取消"
            android:textColor="@color/color44"
            android:textSize="16sp" />
    </LinearLayout>
private void showPop() {
        llBottomPop.animate().translationY(-llBottomPop.getHeight()).setDuration(20).start();
    }

    private void hidPop() {
        llBottomPop.animate().translationY(0).setDuration(20).start();
    }

方法二:

public class HeadImgTool {
    public static String systemCameraPicPath = null;
    private BaseActivity baseLocalActivity;
    private PopupWindow popupWindowPicture = null;

    public HeadImgTool(BaseActivity baseLocalActivity) {
        this.baseLocalActivity = baseLocalActivity;
        systemCameraPicPath = ToolUtils.getSD_CardRootPath()+"/tempCameraPic"+System.currentTimeMillis()+".jpg";//"tempCameraPic"
    }

    public void showPopChangePicDialog(View showAtView){
        showPopChangePicDialog(showAtView,null,null);
    }
    public void showPopChangePicDialog(View showAtView,Boolean selectMulti,Integer maxCount){
        if(null != popupWindowPicture){
            if(popupWindowPicture.isShowing()){
                popupWindowPicture.dismiss();
            }else{
                popupWindowPicture.showAtLocation(showAtView, Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0);
            }
        }else{
            createPopChangePicDialog(showAtView,selectMulti,maxCount);
        }
    }
    protected void createPopChangePicDialog(View showAtView, final Boolean selectMulti,final Integer maxCount) {
        final View popupView = LayoutInflater.from(baseLocalActivity).inflate(R.layout.popwindow_bottom_pic_change, null);
        popupView.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                int height = popupView.findViewById(R.id.popLy).getTop();
                if (event.getAction() == MotionEvent.ACTION_UP){
                    if(null != popupWindowPicture && event.getY() < height)popupWindowPicture.dismiss();
                }
                return true;
            }
        });
        (popupView.findViewById(R.id.btnCamera)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(null != popupWindowPicture)popupWindowPicture.dismiss();
                Intent intent = new Intent();
                intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
                intent.addCategory(Intent.CATEGORY_DEFAULT);
                ToolUtils.ViewAndDeleteDirOrFile(systemCameraPicPath);
                systemCameraPicPath = nToolUtils.getSD_CardRootPath()+"/tempCameraPic"+System.currentTimeMillis()+".jpg";
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(systemCameraPicPath)));
                baseLocalActivity.startActivityForResult(intent, Config.req_ActivityCameraPhoto);
            }
        });
        (popupView.findViewById(R.id.btnPhoto)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(null != popupWindowPicture)popupWindowPicture.dismiss();
                if(null != selectMulti){
                    Bundle bundle = new Bundle();
                    bundle.putBoolean(PicSelectorActivity.ParamMulti,selectMulti);
                    if(null != maxCount)bundle.putInt(PicSelectorActivity.ParamMaxCount,maxCount);
                    ToolUtils.startActivityNoFinish(baseLocalActivity, PicSelectorActivity.class,bundle,VickyConfig.req_ActivityPictureSelect);
                }else{
                    ToolUtils.startActivityNoFinish(baseLocalActivity, PicSelectorActivity.class,null,VickyConfig.req_ActivityPictureSelect);
                }
            }
        });
        popupWindowPicture = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT,true);//创建popupWindow
        popupWindowPicture.setAnimationStyle(R.style.popup_animation);
        popupWindowPicture.setBackgroundDrawable(new ColorDrawable(0x00000000));
        popupWindowPicture.showAtLocation(showAtView,Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0);
    }
}

方法三:

View view = getLayoutInflater().inflate(R.layout.dialog_cancel_instruction, null);
            dialogDesc = new Dialog(this, R.style.transparentFrameWindowStyle);
            dialogDesc.setContentView(view, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
            Window window = dialogDesc.getWindow();
            window.setWindowAnimations(R.style.main_menu_animstyle);// 设置显示动画
            WindowManager.LayoutParams wl = window.getAttributes();
            wl.x = 0;
            wl.y = getWindowManager().getDefaultDisplay().getHeight();
            wl.width = ViewGroup.LayoutParams.MATCH_PARENT;
            wl.height = ViewGroup.LayoutParams.WRAP_CONTENT;
            //下面方法解决固定到窗体底部
            wl.width = ViewGroup.LayoutParams.MATCH_PARENT;
            wl.gravity = Gravity.BOTTOM;
            dialogSelect.onWindowAttributesChanged(wl);
            dialogSelect.setCanceledOnTouchOutside(true);

            dialogDesc.onWindowAttributesChanged(wl);// 设置显示位置
            dialogDesc.setCanceledOnTouchOutside(true);// 设置点击外围解散
            dialogDesc.show();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值