我正在TextureView
上显示视频,我实现了“捏缩放”功能,并且可以正常工作。
在我的TextureView
的{{1}}内部,缩放视图以填充布局,但保持宽高比。
下面是一个截图,可以使您更加清晰:
如上所述,onMeasure
已缩放,但仍保持其宽高比。
我遇到的问题是-由于TextureView
已缩放,因此“捏缩放”将仅在视图内部进行,因此在我的TextureView
外部进行捏缩放将不起作用。
下面是放大上面显示的视频时的外观示例:
我尝试将视图放置在TextureView
内,使其与父级匹配/填充,然后实施缩放以在FrameLayout
内进行,但是随后遇到{{3} }(编辑3),在某些设备上缩放无法正常工作。
我的问题:
有人可以建议我放大缩放的FrameLayout
还是TextureView
的父级的方法吗?
我应该像以前一样对TextureView
进行缩放,还是应该对它的父级执行缩放,如果我对它的父级执行缩放,如何避免共享的链接中发生了什么?
PS ...由于一切正常,我没有提供任何代码,如果您希望我添加任何代码段,请在评论中问我。谢谢。
编辑:
为更加清楚起见,目前,当我放大TextureView
时,不会调整大小或更改其位置,而是在TextureView
本身中进行缩放。放大时,黑色背景仍然可见。我想让整个TextureView
在放大时“放大”,这就是为什么我提到我曾尝试在TextureView
内添加TextureView
并将捏缩放添加到改为FrameLayout
。
this issue是一个从未得到回答的类似问题。
编辑2:
阅读@pskink的评论后,我意识到更改FrameLayout
实际上可以解决此问题。目前,缩放时会使用Matrix
的尺寸,如果可以更改它以便使用屏幕的尺寸,我认为它将解决我的问题。我在TextureView
类中使用以下内容进行放大和缩小:
TextureView
现在我不确定如何更改以上内容,以便缩放从屏幕的尺寸而不是视图的尺寸开始?