gpt4 book ai didi

java - Android 线程顺序/ontouch webview

转载 作者:行者123 更新时间:2023-12-01 04:55:21 26 4
gpt4 key购买 nike

我有一个填充图像的 GridView,当我单击一张图像时,它会在 PagerActivity 中全屏显示,并且全屏显示每个图像一 block html 显示在 webview 的底部。触摸时,一些 webView 会启动视频,而另一些则不执行任何操作。

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

示例:我的网格中有 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 已经影响到新视频了。但我不知道如何解决这个问题?

最佳答案

我最终创建了一个新的透明 Activity 并在新 Activity 中播放视频。

list :

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

关于java - Android 线程顺序/ontouch webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com