VideoView裁剪到正方形

时间:2010-12-10 14:46:01

标签: android video crop android-videoview

使用ImageView,我可以设置方形高度和宽度(比如100dip x 100dip)。然后使用android:scaleType="centerCrop"给我一个图像,无论纵横比如何,都将其裁剪为正方形。

我们可以使用VideoView吗?

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

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

  

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

非常感谢任何想法。

2 个答案:

答案 0 :(得分:4)

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

您还可以使用我的TextureVideoView - 基于Android TextureView的自定义视图,它可以让您轻松播放和裁剪视频。这与ImageView#setScaleType

非常相似

布局

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

代码

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();

希望这会对某人有所帮助!

答案 1 :(得分:1)

Source表示VideoView视图中本身不支持它。您可以复制源并使其工作。 :)最有可能的方法是在第255行添加 else ,修改onMeasure以防止它扩展以满足大小等。

编辑: 不要感到惊讶的是,参考文档稍微偏离或完全错误。