gpt4 book ai didi

flutter - 你如何使用 flutter 做画中画?

转载 作者:IT王子 更新时间:2023-10-29 06:58:22 27 4
gpt4 key购买 nike

有什么方法可以用 flutter 应用程序进行画中画吗?有点像当您观看视频并导航到另一个应用时 YouTube 所做的。

他们在这里谈论它: https://youtu.be/hBPd2q2dmXY

我搜索了一下,没有找到任何关于它的信息

最佳答案

您所要求的在 flutter 中不可用,您只能在 native 中实现它。我制作了一个应用程序,它只为 android 制作了 pip。

首先在 flutter main.dart 中声明一个 channel 喜欢:-

static const platform = const MethodChannel('flutter.rortega.com.channel');

然后在按钮中点击写入:-

 await platform.invokeMethod('showNativeView');

调用mainActivity.java中的方法

在mainActivity.java中编写如下代码:

package com.kovafood;

import io.flutter.embedding.android.FlutterActivity;

import android.app.PictureInPictureParams;
import android.content.Context;
import android.graphics.Point;
import android.os.Build;
import android.util.Rational;
import android.view.Display;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import androidx.multidex.MultiDex;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugin.common.MethodChannel;
import androidx.annotation.NonNull;
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "flutter.rortega.com.channel";

@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
.setMethodCallHandler(
(call, result) -> {
if (call.method.equals("showNativeView")){
Display d = getWindowManager()
.getDefaultDisplay();
Point p = new Point();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
d.getSize(p);
}
int width = p.x;
int height = p.y;
Rational ratio
= null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ratio = new Rational(width, height);
}
PictureInPictureParams.Builder
pip_Builder
= null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
pip_Builder = new PictureInPictureParams.Builder();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
pip_Builder.setAspectRatio(ratio).build();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
enterPictureInPictureMode(pip_Builder.build());
}
} else {
result.notImplemented();
}
}
);
}
}

在androidManifest.xml中,在第一个activity之间添加

android:supportsPictureInPicture="true"

关于flutter - 你如何使用 flutter 做画中画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54763337/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com