Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 视频视图裁剪到正方形_Android_Video_Crop_Android Videoview - Fatal编程技术网

Android 视频视图裁剪到正方形

Android 视频视图裁剪到正方形,android,video,crop,android-videoview,Android,Video,Crop,Android Videoview,使用图像视图,我可以设置正方形的高度和宽度(比如说100dip x 100dip)。然后使用android:scaleType=“centerCrop”给我一个图像,不管纵横比如何,它都会被裁剪成正方形 我们可以用视频视图来实现这一点吗 我试着只设置一个正方形的高度和宽度,但它只是重新调整大小,以尽可能地填充正方形,同时保持纵横比,我想这是完全可以预期的 与ImageView不同,它似乎没有任何缩放或裁剪属性/方法,但VideoView文档中的这一点让我觉得我遗漏了一些东西: [VideoVie

使用
图像视图
,我可以设置正方形的高度和宽度(比如说100dip x 100dip)。然后使用android:scaleType=“centerCrop”给我一个图像,不管纵横比如何,它都会被裁剪成正方形

我们可以用
视频视图
来实现这一点吗

我试着只设置一个正方形的高度和宽度,但它只是重新调整大小,以尽可能地填充正方形,同时保持纵横比,我想这是完全可以预期的

ImageView
不同,它似乎没有任何缩放或裁剪属性/方法,但
VideoView
文档中的这一点让我觉得我遗漏了一些东西:

[VideoView]…提供各种显示选项 例如缩放和着色

任何想法都将不胜感激。

意味着它在VideoView中不受本机支持。您可以复制源代码并使其正常工作。:)最有可能的方法是在第255行添加一个else,修改onMeasure以防止其扩展以满足大小,等等

编辑:
参考文档有点不对劲或完全错了,不要感到惊讶。

您可以使用Android API 14和硬件加速来实现视频裁剪效果。我在文章中对此进行了描述

您还可以使用基于android的my-custom视图
TextureView
,这使您能够轻松播放和裁剪视频。这与
ImageView#setScaleType

布局

<com.dd.crop.TextureVideoView
        android:id="@+id/cropTextureView"
        android:layout_width="fill_parent"
        android:layout_height="100dp"/>

希望这能帮助别人

亲爱的,谢谢,真遗憾我刚刚结束了这个项目@“安迪,你有没有试着制作方形视频?@Naz141,我也不确定。我想我可能剪切了源视频,因为它是为了演示。
TextureVideoView cropTextureView = (TextureVideoView) findViewById(R.id.cropTextureView);
// Use `setScaleType` method to crop video
cropTextureView.setScaleType(TextureVideoView.ScaleType.TOP);
// Use `setDataSource` method to set data source, this could be url, assets folder or path
cropTextureView.setDataSource("http://www.w3schools.com/html/mov_bbb.mp4");
cropTextureView.play();