我想点击一个图像并设置VideoView的可见性并使imageView不可见。但是当我点击图像时会出现一个白色的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" />
答案 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
,使其与初始图像的大小相同