1

画像でGridViewいっぱいです。1つの画像をクリックすると、aに全画面表示され、全画面表示PagerActivityの各画像について、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ユニバーサルイメージローダーに使用します

instanceiateItem(..)メソッドが2回呼び出されることを理解しているので、ビデオを再生しようとすると、videoViewはすでに新しいものに影響を与えています。しかし、どうすればこの問題を解決できますか?

4

1 に答える 1

0

最後に、新しい透明なアクティビティを作成し、新しいアクティビティでビデオを再生します。

マニフェスト:

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

新しいオンタッチ:

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 に答える