Java Android如何仅在半屏幕上应用相机效果?

Java Android如何仅在半屏幕上应用相机效果?,java,android,Java,Android,我在Android中制作了一个带有Camera2 API的摄像头应用程序,一个没有拍照的全屏摄像头,我将其应用于所有预览,我想做的是负面效果只应用于预览的一半,例如: 这是我的密码: 我将感谢您的帮助,因为我太迷茫了,不知道该怎么办:(不幸的是,您必须在这里进行自定义渲染,因为camera2或cameraX API中没有任何东西可以为您这样做 基本上,您需要将相机输出发送到GPU,并使用GL着色器代码编写自己的自定义负面效果 要达到你想要的目的,这需要大量的样板文件,但你不可能有任何其他现实

我在Android中制作了一个带有Camera2 API的摄像头应用程序,一个没有拍照的全屏摄像头,我将其应用于所有预览,我想做的是负面效果只应用于预览的一半,例如:

这是我的密码:


我将感谢您的帮助,因为我太迷茫了,不知道该怎么办:(

不幸的是,您必须在这里进行自定义渲染,因为camera2或cameraX API中没有任何东西可以为您这样做

基本上,您需要将相机输出发送到GPU,并使用GL着色器代码编写自己的自定义负面效果

要达到你想要的目的,这需要大量的样板文件,但你不可能有任何其他现实的选择。虽然ImageView和其他一些Android UI API允许对其输出应用一些效果或颜色变换,但我认为你不可能让他们给你一半的负面视图,而不会出现显著的性能问题


要将相机图像数据发送到GPU,请使用SurfacetTexture作为输出目标,然后使用EGL代码中SurfacetTexture的纹理ID作为源纹理。

我建议您在需要更改代码的具体位置进行故障排除,因为在GitHub上扫描整个脚本既耗时又费力。另外,每个人都会停止您的操作唱
Camera2
并使用
CameraX
。为什么不尝试将图像分成两部分,然后将效果应用到其中一部分?对不起,这是我第一次在StackOverflow上发布,我会记住它,我不知道CameraX,我会检查它,感谢您的时间和帮助。我尝试过分割图像,但没有成功工作。无需道歉,我们有时还是初学者。请查看CameraX并发布结果