在VideoView上叠加图像(在画布上)?

时间:2013-12-16 23:32:13

标签: java android image

我正在尝试将画布放在VideoView上。在这个画布上,我希望能够绘制图像(或矩形,线条等)。

我的XML文件中有以下代码段。

<VideoView
   android:id="@+id/videoplayer"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content" />

同样,我的目标是在此VideoView上设置一个画布,以便我可以将图像放在画布上。

所以,我最终会在视频上叠加图片。我还希望能够覆盖矩形和其他元素。

任何帮助都将非常感谢!这比我想象的要困难得多!

3 个答案:

答案 0 :(得分:7)

我编写了一个完全符合您要求的应用程序。不幸的是我现在没有代码,但我记得在哪里找到了帮助我很多的代码!

正如您在此videoone中所看到的,您可以在视频流上绘制任何您想要的内容,您只需要确保不要删除Here {1}}太多了。

{{3}}您可以找到教程和代码。我所做的是在开始学习它做了什么以及我想要改变它之后开始取出代码块。它确实加快了我在我工作的PoC上的工作。

我希望它有所帮助,如果您还需要更多帮助,我将很乐意为您提供帮助。

祝你好运!

答案 1 :(得分:3)

使用相对布局。以下是我用于在mapview中叠加图像的内容:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >        

    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment"/>

    <ImageView
        android:id="@+id/add_new_poi_icon_overlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/add_new_poi_icon_content_description"
        android:scaleType="centerCrop"
        android:src="@drawable/overlay_with_watermark"
        android:visibility="gone" /> 
</RelativeLayout>

只需将scaletype更改为您需要的,并使用这些参数将其放在您想要的位置:

android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="54dp"
android:layout_marginLeft="36dp"

答案 2 :(得分:1)

我相信你需要的不仅仅是一张图片,对吗?

所以,试试这个:

  1. 使用GLSurfaceView
  2. 创建纹理
  3. 创建SurfaceTexture
  4. 使用SurfaceTexture创建Surface
  5. 告诉MediaPlay输出到上面创建的Surface
  6. 渲染SurfaceTexture
  7. 渲染其他小部件(按钮进度条等)