Android实现简单画中画功能

 更新时间:2021年08月27日 10:33:33   作者:ckwccc  
这篇文章主要为大家详细介绍了Android实现简单画中画功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Android 8.0推出了PictureInPicture(画中画功能),目前只有在8.0以上的系统上支持。对比IOS,IOS的Picture in Picture 模式是苹果公司在 iOS 9 中加入的一项多任务功能。下面先看一下效果:

相信不少人在平时使用ios手机的app时,已经体验过了,很高兴谷歌也推出了这项功能。

使用画中画模式注意点:

1.要使用画中画模式的Activity需要在清单文件中添加属性:

android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:supportsPictureInPicture="true"

2.需要使用PictureInPictureParams类:

PictureInPictureParams.Builder mPictureInPictureParamsBuilder =
            new PictureInPictureParams.Builder();

3.添加待决定的意图

ArrayList<RemoteAction> actions = new ArrayList<>();

 final PendingIntent intent =
                PendingIntent.getBroadcast(
                        MainActivity.this,
                        requestCode,
                        new Intent(ACTION_MEDIA_CONTROL).putExtra(EXTRA_CONTROL_TYPE, controlType),
                        0);
actions.add(new RemoteAction(icon, title, title, intent));

mPictureInPictureParamsBuilder.setActions(actions);

4.使用广播接收各种意图

private BroadcastReceiver mReceiver;

 mReceiver =
                    new BroadcastReceiver() {
                        @Override
                        public void onReceive(Context context, Intent intent) {
                            if (intent == null
                                    || !ACTION_MEDIA_CONTROL.equals(intent.getAction())) {
                                return;
                            }

                            // This is where we are called back from Picture-in-Picture action items.
                            //这就是我们从画中画模式的操作回调的地方
                            final int controlType = intent.getIntExtra(EXTRA_CONTROL_TYPE, 0);
                            switch (controlType) {
                                case CONTROL_TYPE_PLAY:
                                    mMovieView.play();
                                    break;
                                case CONTROL_TYPE_PAUSE:
                                    mMovieView.pause();
                                    break;
                            }
                        }
                    };
            registerReceiver(mReceiver, new IntentFilter(ACTION_MEDIA_CONTROL));

5.配合自定义的MediaPlayer使用:

private MovieView mMovieView;

//各种操作
mMovieView.showControls();
mMovieView.pause();
mMovieView.play();
mMovieView.hideControls();
mMovieView.setAdjustViewBounds(false);

通过广播接收者接收各种操作意图,对应其操作

Demo地址:点击查看

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • MTK Android平台开发流程

    MTK Android平台开发流程

    这篇文章主要介绍了MTK在Android平台开发的流程,一共分析了44个步骤,需要的朋友学习下吧。
    2017-12-12
  • android imageview图片居中技巧应用

    android imageview图片居中技巧应用

    做UI布局,尤其是遇到比较复杂的多重LinearLayout嵌套,常常会被一些比较小的问题困扰上半天,可是无论怎样设置layout_gravity属性,都无法达到效果
    2012-11-11
  • Android使用Profiler查看应用内存分析的操作步骤

    Android使用Profiler查看应用内存分析的操作步骤

    内存分析是Profiler中的一个组件,可以帮助我们识别可能会导致应用卡顿、冻结甚至崩溃的内存泄露和内存抖动,本文小编将给大家介绍一下Android使用Profiler查看应用内存分析的操作步骤,需要的朋友可以参考下
    2023-10-10
  • Android中获取状态栏高度的两种方法分享

    Android中获取状态栏高度的两种方法分享

    在android应用中,有时需要计算个View的位置,导致需要计算状态栏高度。为以后方便,在此做个简单记录。下面这篇文章主要介绍了Android中获取状态栏高度的两种方法,两种方法分别给出了示例代码,有需要的朋友可以参考借鉴。
    2017-02-02
  • Flutter进阶之实现动画效果(五)

    Flutter进阶之实现动画效果(五)

    这篇文章主要为大家详细介绍了Flutter进阶之实现动画效果的第五篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android 7.0调用相机崩溃详解及解决办法

    Android 7.0调用相机崩溃详解及解决办法

    这篇文章主要介绍了 Android 7.0调用相机崩溃详解及解决办法的相关资料,需要的朋友可以参考下
    2016-12-12
  • Android仿知乎悬浮功能按钮FloatingActionButton效果

    Android仿知乎悬浮功能按钮FloatingActionButton效果

    前段时间在看属性动画,恰巧这个按钮的效果可以用属性动画实现,下面通过本文给大家分享adroid仿知乎悬浮功能按钮FloatingActionButton效果,需要的朋友参考下吧
    2017-04-04
  • Android实现小米相机底部滑动指示器

    Android实现小米相机底部滑动指示器

    这篇文章主要为大家详细介绍了Android实现小米相机底部滑动指示器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Android通过HttpURLConnection和HttpClient接口实现网络编程

    Android通过HttpURLConnection和HttpClient接口实现网络编程

    这篇文章主要介绍了Android通过HttpURLConnection和HttpClient接口实现网络编程的相关资料,需要的朋友可以参考下
    2015-02-02
  • Android开发简易音乐播放器

    Android开发简易音乐播放器

    这篇文章主要为大家详细介绍了Android开发简易音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12

最新评论