【问题标题】:VideoView crop to squareVideoView 裁剪为正方形
【发布时间】:2011-05-23 12:52:33
【问题描述】:

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

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

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

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

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

任何想法都将不胜感激。

【问题讨论】:

    标签: android video crop android-videoview


    【解决方案1】:

    您使用 TextureView 实现视频裁剪效果,这需要 Android API 14 和硬件加速。我在我的文章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();
    

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

    【讨论】:

      【解决方案2】:

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

      编辑: 参考文档略有偏差或完全错误,请不要感到惊讶。

      【讨论】:

      • 很好,谢谢,可惜我刚刚结束了这个项目! :)
      • @Andy 你有没有尝试实现方形视频?
      • @Naz141 我不确定。我想我可能已经裁剪了源视频,因为它是出于演示目的。
      猜你喜欢
      • 2011-05-30
      • 2012-04-23
      • 1970-01-01
      • 2017-06-13
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      相关资源
      最近更新 更多