精华内容
下载资源
问答
  • 前面的博文《Android开发笔记(一百五十九)Android7.0的分屏模式》介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半部分,不但尺寸无法调整而且还不能拖动,...
    前面的博文《
    Android开发笔记(一百五十九)Android7.0的分屏模式》介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半部分,不但尺寸无法调整而且还不能拖动,使得它的用户体验不够完美。为此Android8.0又带了另一种更高级的多窗口模式,号称“Picture in Picture”(简称PIP,即“画中画”)。应用一旦进入画中画模式,就会缩小为屏幕上的一个小窗口,该窗口可拖动可调整大小,非常适合用来播放视频。那么如何才能让App支持画中画呢?接下来将对画中画的开发工作进行详细介绍。
    

    经过前面的学习,大家知道Activity默认是支持分屏模式的,当然开发者要给activity节点添加下面的属性描述,从而声明允许分屏也是可以的:
        android:resizeableActivity="true"
    但是对于画中画来说,Activity默认不支持该模式。若想让App页面能够显示画中画的效果,则必须给activity节点添加下面的属性描述,表示该页面支持画中画模式:
        android:supportsPictureInPicture="true"

    除了画中画模式的属性声明,与分屏模式类似,画中画还需注意进行以下几项处理:
    1. App页面从全屏模式切换到画中画模式,它的Activity生命周期也会经历销毁后重建的过程,如果开发者想保持App页面不被重建,则需给该页面的activity节点加上以下的属性描述:
        android:configChanges="screenLayout|orientation"
    2. 对于视频播放页面,Activity代码同样不在onPause方法中暂停播放视频,而应当在onStop方法中暂停播放,并在onStart方法中恢复播放视频。
    3. App若想获知当前是否处于画中画模式,则可调用isInPictureInPictureMode方法,该方法返回true表示处于画中画模式,返回false表示处于全屏模式。
    4. 每当App进入画中画,或者退出画中画的时候,应用会触发Activity页面的onPictureInPictureModeChanged方法。通过重载该方法,应用可以实时收到画中画与全屏的切换通知,并在此控制控件的展示。比如进入画中画时,隐藏除视频画面之外的所有控件;退出画中画时,则恢复这些控件的正常显示,具体参见下列代码:
        public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode, Configuration newConfig) {
            super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig);
            if (isInPictureInPictureMode) { // 进入画中画模式,则隐藏其它控件
                ll_btn.setVisibility(View.GONE);
                vc_play.setVisibility(View.GONE);
            } else { // 退出画中画模式,则显示其它控件
                ll_btn.setVisibility(View.VISIBLE);
                vc_play.setVisibility(View.VISIBLE);
            }
        }

    上面废话了这么多,可是要怎样才能让应用进入画中画模式呢?按下任务键并点击“分屏模式”按钮,接着把App拖到分屏区域,即可实现分屏模式的切换。然而系统却没提供“画中画模式”之类的按钮,就无法在桌面把应用拖入画中画,只能在App内部通过代码切到画中画模式。详细的画中画进入代码如下所示:
        private void enterPicInPic() {
            PictureInPictureParams.Builder builder = new PictureInPictureParams.Builder();
            // 设置宽高比例值,第一个参数表示分子,第二个参数表示分母
            // 下面的10/5=2,表示画中画窗口的宽度是高度的两倍
            Rational aspectRatio = new Rational(10,5);
            // 设置画中画窗口的宽高比例
            builder.setAspectRatio(aspectRatio);
            // 进入画中画模式,注意enterPictureInPictureMode是Android8.0之后新增的方法
            enterPictureInPictureMode(builder.build());
        }
    运行测试App,打开视频文件开始播放,此时的播放界面如下图所示。


    然后点击“进入画中画模式”按钮,此时整个页面缩小成屏幕右下角的一块矩形窗口,将该视频窗口拖动到屏幕上方,可见如下图所示悬浮窗效果。


    若要退出画中画模式,则可点击缩小了的画中画窗口,如下图所示这时该窗口放大些许且画面呈现灰影,表示此刻画中画模式正处于控制操作。看到窗口右上角出现叉号,如果点击叉号即可关闭窗口;窗口中央出现四角正方形,如果继续点击窗口区域,则退出画中画并恢复全屏页面。

    看起来感觉不错,尤其是大屏手机体验更佳。


    点此查看Android开发笔记的完整目录


    __________________________________________________________________________
    本文现已同步发布到微信公众号“老欧说安卓”,打开微信扫一扫下面的二维码,或者直接搜索公众号“老欧说安卓”添加关注,更快更方便地阅读技术干货。
    展开全文
  • 前面的博文《Android7.0的分屏模式》介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半部分,不但尺寸无法调整而且还不能拖动,使得它的用户体验不够完美。...

    前面的博文《Android7.0的分屏模式》介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半部分,不但尺寸无法调整而且还不能拖动,使得它的用户体验不够完美。为此Android8.0又带了另一种更高级的多窗口模式,号称“Picture in Picture”(简称PIP,即“画中画”)。应用一旦进入画中画模式,就会缩小为屏幕上的一个小窗口,该窗口可拖动可调整大小,非常适合用来播放视频。那么如何才能让App支持画中画呢?接下来将对画中画的开发工作进行详细介绍。

    经过前面的学习,大家知道Activity默认是支持分屏模式的,当然开发者要给activity节点添加下面的属性描述,从而声明允许分屏也是可以的:

        android:resizeableActivity="true"

    但是对于画中画来说,Activity默认不支持该模式。若想让App页面能够显示画中画的效果,则必须给activity节点添加下面的属性描述,表示该页面支持画中画模式:

        android:supportsPictureInPicture="true"

    除了画中画模式的属性声明,与分屏模式类似,画中画还需注意进行以下几项处理:
    1. App页面从全屏模式切换到画中画模式,它的Activity生命周期也会经历销毁后重建的过程,如果开发者想保持App页面不被重建,则需给该页面的activity节点加上以下的属性描述:

        android:configChanges="screenLayout|orientation"

    2. 对于视频播放页面,Activity代码同样不在onPause方法中暂停播放视频,而应当在onStop方法中暂停播放,并在onStart方法中恢复播放视频。
    3. App若想获知当前是否处于画中画模式,则可调用isInPictureInPictureMode方法,该方法返回true表示处于画中画模式,返回false表示处于全屏模式。
    4. 每当App进入画中画,或者退出画中画的时候,应用会触发Activity页面的onPictureInPictureModeChanged方法。通过重载该方法,应用可以实时收到画中画与全屏的切换通知,并在此控制控件的展示。比如进入画中画时,隐藏除视频画面之外的所有控件;退出画中画时,则恢复这些控件的正常显示,具体参见下列代码:

        public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode, Configuration newConfig) {
            super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig);
            if (isInPictureInPictureMode) { // 进入画中画模式,则隐藏其它控件
                ll_btn.setVisibility(View.GONE);
                vc_play.setVisibility(View.GONE);
            } else { // 退出画中画模式,则显示其它控件
                ll_btn.setVisibility(View.VISIBLE);
                vc_play.setVisibility(View.VISIBLE);
            }
        }

    上面废话了这么多,可是要怎样才能让应用进入画中画模式呢?按下任务键并点击“分屏模式”按钮,接着把App拖到分屏区域,即可实现分屏模式的切换。然而系统却没提供“画中画模式”之类的按钮,就无法在桌面把应用拖入画中画,只能在App内部通过代码切到画中画模式。详细的画中画进入代码如下所示:

        private void enterPicInPic() {
            PictureInPictureParams.Builder builder = new PictureInPictureParams.Builder();
            // 设置宽高比例值,第一个参数表示分子,第二个参数表示分母
            // 下面的10/5=2,表示画中画窗口的宽度是高度的两倍
            Rational aspectRatio = new Rational(10,5);
            // 设置画中画窗口的宽高比例
            builder.setAspectRatio(aspectRatio);
            // 进入画中画模式,注意enterPictureInPictureMode是Android8.0之后新增的方法
            enterPictureInPictureMode(builder.build());
        }

    运行测试App,打开视频文件开始播放,此时的播放界面如下图所示。

    然后点击“进入画中画模式”按钮,此时整个页面缩小成屏幕右下角的一块矩形窗口,将该视频窗口拖动到屏幕上方,可见如下图所示悬浮窗效果。

    若要退出画中画模式新OA平台出租(www.1159880099.com) QQ1159880099  源码交易,源码出售,则可点击缩小了的画中画窗口,如下图所示这时该窗口放大些许且画面呈现灰影,表示此刻画中画模式正处于控制操作。看到窗口右上角出现叉号,如果点击叉号即可关闭窗口;窗口中央出现四角正方形,如果继续点击窗口区域,则退出画中画并恢复全屏页面。

    看起来感觉不错,尤其是大屏手机体验更佳。

    展开全文
  • canvas画图 切割画布(clip)

    千次阅读 2012-07-21 21:07:48
    假设:区域A,区域B 先裁剪A,再裁剪B(带参数)  Path pA Path pB Canvas.clip(pA); Canvas.clip(pB, Region.Op...);...Region.Op......-- 得到的区域 ->在A,与B相同的部分 Region.Op.REVERSE
    假设:区域A,区域B
    先裁剪A,再裁剪B(带参数) 

    Path pA
    Path pB
    Canvas.clip(pA);
    Canvas.clip(pB, Region.Op...);
    
    /*
    Region.Op... 参数说明:
     
    Region.Op.DIFFERENCE         
    -- 得到的区域    ->在A中,与B不相同的部分
     
    Region.Op.REVERSE_DIFFERENCE
    -- 得到的区域    ->在B中,与A不相同的部分
     
    Region.Op.INTERSECT        
    -- 得到的区域    ->A与B相同的部分(交集)
    Region.Op.XOR       
    -- 得到的区域    ->不包含A与B相同的部分(全集减去交集)
     
    Region.Op.UNION        
    -- 得到的区域    ->A与B的所有部分(全集)
     
    Region.Op.REPLACE        
    -- 得到的区域    ->将A的区域用B替换
    */ 
    
    PS:网上看了很多文章,自己重新整理了一番


    展开全文
  • unity3d 导入动画一帧问题

    千次阅读 2017-08-22 11:14:31
    比如有些地方一帧过去,u3d里看起来里面就好像还有很多帧 看起来更平滑,就好象u3d自己插值了 其实unity并没有插值,而是maya导出fbx的时候动画上没有把帧改成step tangents模式 红色的轴中间就是step ...

    有时候maya里面看起来正常的动画导入到unity3d里看其就有些问题

    比如有些地方用一帧切过去,u3d里看起来里面就好像还有很多帧

    看起来更平滑,就好象u3d自己插值了

    其实unity并没有插值,而是maya导出fbx的时候动画上没有把帧改成step tangents模式

    红色的轴中间就是step tangents,是改过以后,这个导入到u3d里就是正常的一帧切

    而绿色的就是默认的,但是因为maya里预览默认是一帧帧预览的,所以看不出中间的插值

    但是unity是一般是超过动画k的帧率运行的,所以就能看到中间的插值帧了(interpolation)

    这些可以在u3d的ctrl+6调出的animation curve模式下看出

    以前是这样的,可以看到平滑过maya里自动插值的帧


    调整后是如下显示,每帧都单独烘焙(就是maya里面框选所有帧 调整到step tangents


    就是正常的

    当然legacy和generic模式一样,重点还是maya里导出前作的处理


    另外注意fbx导入unity后帧就不能调整了

    如果是unity里面k的帧,可以选中帧右击选constant来取消平滑插值如下图

    还能选flat保证在帧起始位置上是平的




    如果再有问题,比如导出软件设置之类还能产生插值问题,可以试试改成generic模式


    把resample curves去掉看看,因为unity默认是重新采样的(注意legacy没有这个功能)

    具体可以看官方人员解释

    https://forum.unity3d.com/threads/unity-animation-interpolation.454048/

    当然还有的时候导入到u3d里面的帧还是有异常,一般大量帧的时候或者旋转有跳跃,u3d还是会一如既往的插帧,这个貌似还没法解决,除非一段段动画单独导入,但这个工作量大,还有就是貌似可以烘焙到顶点上,这样好像就没有插帧了

    但是一般这些都看不出来,除非是用到摄像机上的动画,在unity里面k也是一个方法,可以避免掉插值帧,如果是输出的输出后手动删帧吧






    展开全文
  • Android8.0的画中画模式

    2018-03-26 09:53:00
    然而系统却没提供“画中画模式”之类的按钮,就无法在桌面把应用拖入画中画,只能在App内部通过代码画中画模式。详细的画中画进入代码如下所示: private void enterPicInPic() { PictureInPictureParams....
  • 最近在ndk里面OpenGL es海图,然后发现opengl不能直接凹多边形(只能直接点、线、三角形),所以寻找多边形切割为三角形的算法。主要方法列举: http://vterrain.org/Implementation/Libs/triangulate.html ...
  • 本章实际操作使用ps来进行切图,分成四部分来讲解: 1.切图的常规步骤 2.如何只保留某一部分 3.删除切片 4去掉默认切片线 ...我现在有一张登录框的psd,拿到psd后首先要...然后切片工具出三个部分,如果觉得切片
  • 用户画像总结

    万次阅读 多人点赞 2018-03-28 14:45:51
     标签无法赋值的原因有:数据无法采集(没有有效的渠道和方法采集到准确的数据,比如用户身份证号)、数据库不能打通、建模失败(预测指标无法获得赋值)等等。   2、 标签体系结构  标签体系可以归纳出如下的...
  • 如何python在excel画画

    千次阅读 2020-05-21 19:32:01
    一.引言 最近看B站视频,有大佬徒手excel一个格子一个格子填充,撸出了钢铁侠的图片,惊奇的同时,我思考,...1.安装python中使用opencv需要的相关的库 进入cmd命令,输入: pip install wheel pip install numpy
  • 用户画像解析

    万次阅读 多人点赞 2019-02-28 22:26:05
    用户画像一点也神秘,它是根据用户在互联网留下的种种数据,主动或被动地收集,最后加工成一系列的标签。比如猜用户是男是女,哪里人,工资多少,有没有谈恋爱,喜欢什么,准备剁手购物吗? 我们常把用户标签和...
  • css三角形

    2018-06-17 23:40:38
    css怎么一个三角形?
  • 也就是IK,FK是两个状态,而且存在而这中间的状态,一般10,0分别代表两个状态,中间的数字代表两者的动作按比例插值之后得到的动作,这时候在上述例子的80帧若为0,81帧打成10,再回来的时候不能直接打回0,否则...
  • 【canvas 图形画布标签】(使用详解)

    千次阅读 2019-05-23 23:22:06
    canvas 图形画布标签1....1.3 如何使用 canvas 图形画布 标签 来绘制图形 ?1.3.1 画布栅格和坐标空间1.3.2 绘制矩形1.3.3 绘制路径1.3.4 移动笔触1.3.5 绘制 线段1.3.6 绘制 圆弧和圆弧1.3.7 二次 贝塞尔曲线 和...
  • 网络画板教程

    千次阅读 2018-05-07 15:42:27
    施古登问题的完美解决https://jingyan.baidu.com/article/d5c4b52b924dadda560dc5cb.html分割为三个等腰三角形的三角形(网络画板演示)https://jingyan.baidu.com/article/0f5fb09921cae66d8334ea06.html网络画板...
  • 用户画像作为“大数据”的核心组成部分,在众多互联网公司一直有其独特的地位。 作为国内旅游OTA的领头羊,携程也有着完善的用户画像平台体系。目前用户画像广泛用于个性化推荐,猜你喜欢等;针对旅游市场,携程...
  • 不能一下正三角形的内圆 谢谢</p>
  • 需求是这样的,角色在待机和跑动中都可以攻击也可能受击,但如果是跑动到攻击和受击时同时还要保持跑动的动画,同样的待机切换的,执行完后就是待机动画。如果只用一层,Animator ...但是,仅仅是跑动可...
  • 最近看到一个特别有意思的开源项目,把照片自动转化成漫画效果,经过半个小时的调试,终于跑通了。正先给大家看下实际效果,我在网上的随便搜了一张帅哥的证件照片试了下。基本上会把脑袋出来,然后放大眼睛。 ...
  • 网格顶点动画(变形动画)是针对于物体的形状...所以变形动画还是别用到过于复杂的模型之上,毕竟到头来吃力的只会是你的CPU,不过一些简单的模型倒不用担心,像什么旗帜飘扬什么的,不用打开3DMAX(前提是得会...
  • 文章目录4.1 什么是面向面编程4.2 通过切点来选择连接点4.3 使用注解创建面4.4 在XML声明面4.5 注入AspectJ面4.6 小结 本章内容: 面向面编程的基本原理 通过POJO创建使用@AspectJ注解 为AspectJ...
  • 想必这些都是绘画初学者们经常在想的问题吧,就是知道如何才能绘画好自己想要绘画的东西,比如说想要把天空出好看的云彩,但是却知道怎么才好 那么今天奇天CG学院就在网络上收集整理了一些关于如何绘画云彩...
  • Path直线与弧线

    千次阅读 2019-03-11 13:24:11
    之前讲过Paint和Canvas的基本使用,今天来介绍下Path的使用 涉及内容有: Path直线路径 Path弧线路径 PathView引用说明 项目结构图和效果图 #####一. Path直线路径 Path直线路径的步骤分三步: 第一步:...
  • 遇到芯片封装太大,cadence一页也一定能画完的情况,需要分几部分花原理图,以下为操作步骤: New part创建封装: 1.Name填写封装名,2.Parts per Pkg填写分几部分,按自己需求填写,3.选择异类Heterogeneous...
  • 前几天在做一个Android app的时候,需要一个饼图,直接代码自己一个当然也不会太复杂,但毕竟还是应该尽量避免重新发明轮子(有些愤青连这句话也要吐槽,好吧,加上一句,专业制造轮子的除外),在网上找了一...
  • canvas类介绍 Canvas这个类相当于一个画布,你可以在里面很多东西; 我们可以把这个Canvas理解成系统提供给...也就是说在这种方式下我们已经一笔一划或者使用Graphic来我们所需要的东西了,要什么要显示什
  • 十七、在画布上绘图 原文:Drawing on Canvas 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 绘图就是欺骗。... M.C.... Escher》引...
  • 用户画像原理、方法

    万次阅读 2018-09-11 11:21:17
     标签无法赋值的原因有:数据无法采集(没有有效的渠道和方法采集到准确的数据,比如用户身份证号)、数据库不能打通、建模失败(预测指标无法获得赋值)等等。  2、标签体系结构  标签体系可以归纳出如下...
  • 使用canvas一个时钟

    2017-10-17 20:23:39
    介绍一下如何使用 HTML5 的 canvas 标签和 JavaScript 一个时钟。
  • 如何在论文中画出漂亮的插图?

    万次阅读 多人点赞 2016-04-13 21:04:02
    经常看到别人论文中画出各种绚烂的插图,我想知道这些图都是一些什么样的软件画出来的。比如下面给出的几张,好吧,我承认有的并那么绚烂,但什么样的软件比较合适呢?具体答案可以拓展到更为广远的作图领域。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,701
精华内容 25,080
关键字:

切画中画不能用