android的popuwindow的使用

private void showPopupWindow() {
        View contentView = LayoutInflater.from(MainActivity.this).inflate(R.layout.popuplayout, null);
        PopupWindow mPopWindow = new PopupWindow(contentView);
		//充满全屏
        mPopWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
        mPopWindow.setHeight(ViewGroup.LayoutParams.<span style="font-family: Arial, Helvetica, sans-serif;">MATCH_PARENT</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>
<span style="white-space:pre">		</span>//另一种使布局充满全屏的方法
//        mPopWindow.setHeight(getWindowManager().getDefaultDisplay().getHeight());
//        mPopWindow.setWidth(getWindowManager().getDefaultDisplay().getWidth());

      //是否响应touch事件
      mPopWindow.setTouchable(true);
      //是否具有获取焦点的能力
      mPopWindow.setFocusable(true);

      //外部是否可以点击
      mPopWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));
      mPopWindow.setOutsideTouchable(true);
      
        mPopWindow.setAnimationStyle(R.style.contextMenuAnim);

        mPopWindow.showAsDropDown(mMenuTv);//展示在哪个view下面

    }


以上是popuwindow在android6.0以下,屏蔽返回键起作用;但在android6.0以上,仍然可以按返回键使得popuwindow消失;

下面是适配6.0以下的:

private void initPopuwindow() {
        popupWindowView = View.inflate(VideoLiveActivity.this, R.layout.video_live, null);
        viewHolder = new ViewHolder(popupWindowView);
        popupWindow = setPopupwindow(popupWindowView);
    }

    private PopupWindow setPopupwindow(View view) {
        PopupWindow mPopWindow = new PopupWindow(view);

        final DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        mPopWindow.setWidth(metrics.widthPixels);
        mPopWindow.setHeight(metrics.heightPixels);

        //是否响应touch事件
        mPopWindow.setTouchable(true);
        //是否具有获取焦点的能力
        mPopWindow.getContentView().setFocusable(true);
        mPopWindow.getContentView().setFocusableInTouchMode(true);

        //在Android 6.0以下使用
        mPopWindow.setOutsideTouchable(false);

        //在Android 6.0以上 ,只能通过拦截事件来解决
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            mPopWindow.setTouchInterceptor(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    final int x = (int) event.getX();
                    final int y = (int) event.getY();
                    if ((event.getAction() == MotionEvent.ACTION_DOWN)
                            && ((x < 0) || (x >= metrics.widthPixels) || (y < 0) || (y >= metrics.heightPixels))) {
                        return true;
                    } else if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
                        return true;
                    }
                    return false;
                }
            });
        }

        return mPopWindow;
    }

第一个方法是初始化popuwindow,第二个是构建popuwindow对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android PopuWindow 中播放 VideoView,你可以按照以下步骤进行操作: 1. 首先,在你的 PopuWindow 布局文件中添加一个 VideoView,并设置其宽度和高度: ```xml <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 在你的 PopuWindow 的代码中,获取 VideoView 的实例并设置视频的路径: ```java // 获取 VideoView 实例 VideoView videoView = popupWindow.getContentView().findViewById(R.id.videoView); // 设置视频路径 String videoPath = "your_video_path"; videoView.setVideoPath(videoPath); ``` 3. 如果需要控制视频的播放,你可以添加一些按钮或者手势来控制 VideoView 的播放、暂停、停止等操作: ```java // 设置播放按钮的点击事件 Button playButton = popupWindow.getContentView().findViewById(R.id.playButton); playButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!videoView.isPlaying()) { videoView.start(); } } }); // 设置暂停按钮的点击事件 Button pauseButton = popupWindow.getContentView().findViewById(R.id.pauseButton); pauseButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (videoView.isPlaying()) { videoView.pause(); } } }); // 设置停止按钮的点击事件 Button stopButton = popupWindow.getContentView().findViewById(R.id.stopButton); stopButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { videoView.stopPlayback(); } }); ``` 这样,你就可以在 PopuWindow使用 VideoView 播放视频了。记得替换 "your_video_path" 为你的视频文件路径。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值