8

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

我们可以用 a 来做到这一点VideoView吗?

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

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

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

任何想法将不胜感激。

4

2 回答 2

4

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

您还可以使用我的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();

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

于 2014-03-24T09:00:52.150 回答
1

Source意味着它在 VideoView 视图中不受本机支持。您可以复制源代码并使其工作。:) 最有可能通过在第 255 行添加else,修改 onMeasure 以防止它扩展以满足大小等。

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

于 2011-08-05T16:58:37.260 回答