android全屏的实现方案1


    /**
     * @param activity   用来查找根视图
     * @param viewGroup  当退出全屏的时候被插入的父节点
     * @param anchor     全屏控件
     * @param isPortrait 是否是竖屏
     */
    public static void setOrRemoveAnchorViewToRootView(Activity activity, ViewGroup viewGroup, View anchor, boolean isPortrait) {
        FrameLayout contentRootView = (FrameLayout) activity.findViewById(android.R.id.content);
        if (contentRootView.getChildAt(0) instanceof FrameLayout) {
//            contentRootView = (FrameLayout) contentRootView.getChildAt(0);//这个是真activity布局。

        }
        boolean requestCloseFull = anchor.getParent() == contentRootView;
//        boolean requestFull = anchor.getParent() == viewGroup;//现在布局进行调整了 是一个线性布局,那么父容器变化了。
        ((ViewGroup) anchor.getParent()).removeView(anchor);
        boolean hasParent = anchor.getParent() != null;
        FrameLayout.LayoutParams params = null;
        if (isPortrait) {
            if (!requestCloseFull) {
                params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, AppContext.getDisplayMetrics().heightPixels);//全屏 写死  isPorrait 不旋转的情况下不写死那么会出问题。??我已经忘记为什么这么写了岁月是一把杀猪刀
            } else {
                params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
            }
        } else {//要居中还要白屏
            params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, requestCloseFull ? ViewGroup.LayoutParams.WRAP_CONTENT : ViewGroup.LayoutParams.MATCH_PARENT);
        }
        params.gravity = Gravity.CENTER;

        if (anchor.getTag(R.id.video_top) != null) {//取消全屏
            anchor.setTag(R.id.video_top, null);
            viewGroup.addView(anchor);
        } else {//全屏
            anchor.setTag(R.id.video_top, "qssq");
            contentRootView.addView(anchor, contentRootView.getChildCount(), params);//ava.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
        }


    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (稻盛哲学学习会)打卡第7天 姓名:王建凤 部门:杭州安简 组别:待定 【知~学习】 诵读《活法》 第一章:将要实...
    又昂阅读 125评论 0 0
  • 一款在美国、日本鲜为人知的“旅行青蛙”游戏,居然在APP Store中下载量超千万次,中国下载量超过950万次,成...
    訾占超阅读 133评论 0 0
  • by :大彤 在跟白总裸聊失败后,特意发了条微博以此证明...
    独一有二李先生阅读 421评论 0 0
  • 注意 只适合Chrome谷歌浏览器 因为勾选了"开发者模式", 每次打开浏览器会弹框提示"请停用以开发者模式运行的...
    iOS小白_昊然阅读 1,420评论 0 0