2013-01-11 31 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; 
    }