自定义PopupWindow调用相机和相册

自定义布局

  

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
android:background="#d0d0d0"
    android:layout_height="match_parent"
    >
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_weight="0.5"
            android:layout_width="0dp"
            android:layout_height="wrap_content"></LinearLayout>
        <LinearLayout
            android:layout_weight="8"
            android:id="@+id/ll"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            
            android:orientation="vertical">
            <LinearLayout
                android:background="@drawable/sha"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <LinearLayout
                    android:paddingBottom="30dp"
                    android:id="@+id/share_ll"
                    android:paddingTop="20dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingRight="20dp"
                    android:paddingLeft="20dp"
                    android:orientation="horizontal"
                    >
                    <TextView
                        android:textColor="#0B7CFF"
                        android:textSize="18px"
                        android:gravity="center"
                        android:text="相机"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" />

                </LinearLayout>
                <LinearLayout
                    android:id="@+id/xiangji"
                    android:paddingBottom="30dp"
                    android:paddingTop="20dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingRight="20dp"
                    android:paddingLeft="20dp"
                    android:orientation="horizontal"
                    >
                    <TextView
                        android:textColor="#0B7CFF"
                        android:textSize="18px"
                        android:gravity="center"
                        android:text="我的相册"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" />

                </LinearLayout>
            </LinearLayout>
            <TextView
                android:layout_marginTop="10dp"
                android:id="@+id/line"
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:layout_below="@+id/share_ll" />
            <LinearLayout
                android:id="@+id/quxiao"
                android:background="@drawable/sha"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:textColor="#0B7CFF"
                    android:textSize="18px"
                    android:id="@+id/share_cancle"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:layout_below="@+id/line"
                    android:paddingBottom="20dp"
                    android:paddingTop="20dp"
                    android:text="取消"/>
            </LinearLayout>

        </LinearLayout>
        <LinearLayout
            android:layout_weight="0.5"
            android:layout_width="0dp"
            android:layout_height="wrap_content"></LinearLayout>
    </LinearLayout>
   
</RelativeLayout>


自定义PopupWindow

package com.xxx.www.zhifubao;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;

/**
 * Created by Administrator on 2018/5/8.
 */

public class RewritePopwindow extends PopupWindow { private View mView;

    public RewritePopwindow(Activity context, View.OnClickListener itemsOnClick) {
        super(context);
        initView(context, itemsOnClick);
    }

    private void initView(final Activity context, View.OnClickListener itemsOnClick) {
        LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mView = mInflater.inflate(R.layout.popupwindow_share, null);
        LinearLayout weiXFriend = (LinearLayout) mView.findViewById(R.id.share_ll);
        LinearLayout friendster = (LinearLayout) mView.findViewById(R.id.xiangji);
        LinearLayout canaleTv = (LinearLayout) mView.findViewById(R.id.quxiao);
        canaleTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //销毁弹出框
                dismiss();
                backgroundAlpha(context, 1f);
            }
        });
        //设置按钮监听
        weiXFriend.setOnClickListener(itemsOnClick);
        friendster.setOnClickListener(itemsOnClick);
        //设置SelectPicPopupWindow的View
        this.setContentView(mView);
        //设置SelectPicPopupWindow弹出窗体的宽
        this.setWidth(WindowManager.LayoutParams.FILL_PARENT);
        //设置SelectPicPopupWindow弹出窗体的高
        this.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
        //设置SelectPicPopupWindow弹出窗体可点击
        this.setFocusable(true);
        //设置PopupWindow可触摸
        this.setTouchable(true);
        //设置非PopupWindow区域是否可触摸
//    this.setOutsideTouchable(false);
        //设置SelectPicPopupWindow弹出窗体动画效果
//    this.setAnimationStyle(R.style.select_anim);
        //实例化一个ColorDrawable颜色为半透明
        ColorDrawable dw = new ColorDrawable(0x00000000);
        //设置SelectPicPopupWindow弹出窗体的背景
        this.setBackgroundDrawable(dw);
        backgroundAlpha(context, 0.5f);//0.0-1.0
        this.setOnDismissListener(new OnDismissListener() {
            @Override
            public void onDismiss() {
                // TODO Auto-generated method stub
                backgroundAlpha(context, 1f);
            }
        });
    }


    /**
     * 设置添加屏幕的背景透明度
     *
     * @param bgAlpha
     */
    public void backgroundAlpha(Activity context, float bgAlpha) {
        WindowManager.LayoutParams lp = context.getWindow().getAttributes();
        lp.alpha = bgAlpha;
        context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        context.getWindow().setAttributes(lp);
    }

}
shape布局

<?xml version="1.0" encoding="utf-8"?>
<shape

    xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <solid
        android:color="#fff"/>
    <stroke
        android:width="1dp"
        android:color="#fff"/>
   <corners android:radius="18dp"/>
</shape>



方法调用

点击方法里(button)

mPopwindow = new RewritePopwindow(MainActivity.this, itemsOnClick);
mPopwindow.showAtLocation(v,
        Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);

private View.OnClickListener itemsOnClick = new View.OnClickListener() {

    public void onClick(View v) {
        mPopwindow.dismiss();
        mPopwindow.backgroundAlpha(MainActivity.this, 1f);
        switch (v.getId()) {
            case R.id.share_ll:
                Toast.makeText(MainActivity.this, "相机", Toast.LENGTH_SHORT).show();
                break;
            case R.id.xiangji:
                Toast.makeText(MainActivity.this, "相册", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
    }

};

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值