2013-01-11 29 views
1

我有一个GridView填充图像,当我点击一个图像时,它在全屏幕中显示在一个PagerActivity和全屏幕中的每个图像一块html显示在底部一个webview。在触摸一些webViews发射视频,有些什么也不做。Android线程命令/ ontouch webview

我的问题是,如果我触摸一个“web视频”,视频显示在下一个布局。

例如:我的网格中有3张图片。我点击第一个,这个图像全屏显示,底部有一个webview,当我点击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 Universal image loader

我明白instantiateItem(..)方法被调用了两次,所以这就是为什么当我试图播放videoView已经影响到新的视频。但我不知道我该如何解决这个问题?

回答

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; 
    }