我有一个GridView
图像填充,当我单击一个图像时,它会在 a 中全屏显示,PagerActivity
并且对于全屏的每个图像,在 a 的底部显示一段 html webview
。触摸时,有些webViews
会启动视频,有些则什么也不做。
我的问题是如果我触摸“webView 视频”,视频会显示在下一个布局中。
示例:我的网格中有 3 张图像。我单击了第一个,该图像以全屏显示,底部有一个 web 视图,当我单击以webview
在图像 1 的顶部启动视频时,视频在图像 2 的顶部启动。
这是我的代码的一部分ImagePagerActivity
:
public class ImagePagerActivity extends BaseActivity {
...
private class ImagePagerAdapter extends PagerAdapter implements OnTouchListener,Handler.Callback {
...
public Object instantiateItem(View view, final int position) {
final View imageLayout = inflater.inflate(R.layout.item_pager_image, null);
final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);
final WebView webView = (WebView) imageLayout.findViewById(R.id.webView1);
final TextView textView=(TextView) imageLayout.findViewById(R.id.edit_message);
topLevelLayout = (RelativeLayout) imageLayout.findViewById(R.id.top_layout);
videoView = (VideoView) imageLayout.findViewById(R.id.videoView);
topLevelLayout.setBackgroundColor(0x00000000);
((ViewPager) view).addView(imageLayout, 0);
imageLoader.displayImage(images[position], imageView, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted() {
...
}
@Override
public void onLoadingFailed(FailReason failReason) {
...
}
@Override
public void onLoadingComplete(Bitmap loadedImage) {
// HERE ADD THE WEBVIEW ON THE BOTTOM OF THE IMAGE
}
});
return imageLayout;
}
public boolean onTouch(View v, MotionEvent event) {
if(isWebViewLaunchViedo()){
PlayVideo(positionVideo);
}
}
}
我将此项目用于 GridActivity 和 PagerActivity通用图像加载器
我知道 instantiateItem(..) 方法被调用了两次,这就是为什么当我尝试播放视频时 videoView 已经影响到新视频的原因。但我不知道如何解决这个问题?