带有ImageView的Android VideoView

时间:2016-02-18 10:20:44

标签: android android-videoview

我想点击一个图像并设置VideoView的可见性并使im​​ageView不可见。但是当我点击图像时会出现一个白色的nbackground。请帮助。

var params = $state.params;
params.id = 123; // Set new ID
$state.go($state.current.name, params);

imageView和videoView的布局

feedImageView.setOnClickListener(new OnClickListener() {
    String substr2 =item.getImge().substring(item.getImge().length() - 3);
    @Override
    public void onClick(View v) {
        if(item.getImge()!=null)
        {
            if(substr2.equals("jpg"))
            {
                Log.e(TAG,"Its image");
            }
            else if(substr2.equals("mp4"))
            {
                feedImageView.setVisibility(View.INVISIBLE);
                MediaController mc=new MediaController(getActivity());
                mc.setAnchorView(vid);
                mc.setMediaPlayer(vid);
                Log.e(TAG,"In mp4 "+item.getImge());
                Uri uri = Uri.parse(item.getImge());
                vid.setMediaController(mc);
                vid.setVideoURI(uri);
                vid.setVisibility(View.VISIBLE);
                vid.start();

                Log.e(TAG, "Its video");
            }
        }
    }
});

完整的布局文件 -

<com.example.adapter.FeedImageView
    android:id="@+id/feedImage1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:layout_marginTop="10dp"
    android:scaleType="fitXY"
    android:visibility="visible" />
<VideoView
    android:id="@+id/vid"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:scaleType="fitXY"
    android:visibility="invisible" />

2 个答案:

答案 0 :(得分:0)

而不是使用隐形使用:

替换:

feedImageView.setVisibility(View.INVISIBLE);

使用:

feedImageView.setVisibility(View.GONE);

答案 1 :(得分:0)

为了将图像和视频叠加在另一个上面,您应该将它们放在这样的容器中:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<com.example.adapter.FeedImageView
            android:id="@+id/feedImage1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:layout_marginTop="10dp"
            android:scaleType="fitXY"
            android:visibility="visible" />
        <VideoView
            android:id="@+id/vid"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="10dp"
            android:visibility="invisible"
             />
</FrameLayout>

请注意,视频的高度为match_parent,使其与初始图像的大小相同