Android實(shí)現(xiàn)簡(jiǎn)單畫中畫功能
Android 8.0推出了PictureInPicture(畫中畫功能),目前只有在8.0以上的系統(tǒng)上支持。對(duì)比IOS,IOS的Picture in Picture 模式是蘋果公司在 iOS 9 中加入的一項(xiàng)多任務(wù)功能。下面先看一下效果:

相信不少人在平時(shí)使用ios手機(jī)的app時(shí),已經(jīng)體驗(yàn)過了,很高興谷歌也推出了這項(xiàng)功能。
使用畫中畫模式注意點(diǎn):
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.
//這就是我們從畫中畫模式的操作回調(diào)的地方
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);
通過廣播接收者接收各種操作意圖,對(duì)應(yīng)其操作
Demo地址:點(diǎn)擊查看
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android Compose狀態(tài)實(shí)例詳解
這篇文章主要介紹了Android Compose狀態(tài),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-12-12
Ubuntu中為Android系統(tǒng)上實(shí)現(xiàn)內(nèi)置C可執(zhí)行程序測(cè)試Linux內(nèi)核驅(qū)動(dòng)程序
本文主要介紹在Ubuntu上為Android系統(tǒng)內(nèi)置C可執(zhí)行程序測(cè)試Linux內(nèi)核驅(qū)動(dòng)程序,這里對(duì)測(cè)試Linux 內(nèi)核驅(qū)動(dòng)程序做了詳細(xì)介紹,并附有代碼示例,有興趣的小伙伴可以參考下2016-08-08
Android編程實(shí)現(xiàn)擦除Bitmap中某一塊的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)擦除Bitmap中某一塊的方法,涉及Android操作Bitmap顏色像素值調(diào)整的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Android開發(fā)中的文件操作工具類FileUtil完整實(shí)例
這篇文章主要介紹了Android開發(fā)中的文件操作工具類FileUtil,結(jié)合完整實(shí)例形式分析了Android文件操作的常用技巧,包括文件的獲取、遍歷、搜索、復(fù)制、刪除、判斷等功能,需要的朋友可以參考下2017-11-11
Android自定義控件實(shí)現(xiàn)優(yōu)雅的廣告輪播圖
這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)優(yōu)雅的廣告輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Android編程實(shí)現(xiàn)canvas繪制餅狀統(tǒng)計(jì)圖功能示例【自動(dòng)適應(yīng)條目數(shù)量與大小】
這篇文章主要介紹了Android編程實(shí)現(xiàn)canvas繪制餅狀統(tǒng)計(jì)圖功能,可實(shí)現(xiàn)自動(dòng)適應(yīng)條目數(shù)量與大小的功能,涉及Android基于canvas的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2017-01-01
一文讀懂Android?Kotlin的數(shù)據(jù)流
這篇文章主要介紹了一文讀懂Android?Kotlin的數(shù)據(jù)流,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07
Android App中實(shí)現(xiàn)向右滑動(dòng)銷毀功能的要點(diǎn)解析
這篇文章主要介紹了Android應(yīng)用中實(shí)現(xiàn)向右滑動(dòng)銷毀條目功能的要點(diǎn)解析,有些類似于iOS App中的滑動(dòng)頁面刪除效果,需要的朋友可以參考下2016-04-04
Android發(fā)送GET與POST請(qǐng)求的DEMO詳解
本篇文章是對(duì)Android發(fā)送GET與POST請(qǐng)求的DEMO進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
recycleview實(shí)現(xiàn)拼多多首頁水平滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了recycleview實(shí)現(xiàn)拼多多首頁水平滑動(dòng)效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05

