1

我有一个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 已经影响到新视频的原因。但我不知道如何解决这个问题?

4

1 回答 1

0

我终于创建了一个新的透明活动并在新活动中播放视频。

显现 :

<activity
  android:name="com.ad.AdVideoActivity"
  android:theme="@style/Theme.Transparent"         <------
  android:label="@string/title_activity_ad_video" >
</activity>

新的 Ontouch :

public boolean onTouch(View v, MotionEvent event) {
        if (ADS_VIDEO.contains(v.getId()) && event.getAction() == MotionEvent.ACTION_DOWN) {
            intentVideo = new Intent(getBaseContext(),AdVideoActivity.class);
            startActivity(intentVideo);
        }

        return false;
    }
于 2013-01-26T01:43:36.303 回答