主线程外的硬件加速。尝试从WebView中显示AlertDialog中的Image

时间:2014-03-07 12:21:17

标签: android android-webview android-dialog

按下WebView的图像时打开一个对话框然后我收到此警告。我假设WebView是他正在讨论的不同主题,但有没有办法解决这个问题?我只是在按下图像时执行一个功能。该函数位于片段内。

public View onCreateView(....
...
...
    mWebView.addJavascriptInterface(new Object()
    {
        @JavascriptInterface
        public void performClick()
        {
            enlargeImage();
        }
    }, "ok");

private void enlargeImage()
{
    mImageView = new ImageView(getActivity());
    loadImageFromURL(mImage, mImageView);
    loadPhoto(mImageView);
}

这是loadPhoto函数,它给了我这个问题。

更确切地说,Dialog正在解决问题。如果有什么我可以用它替换它就像窗口一样。我拥有的和我想要的是一个显示我可以关闭的图像的窗口。

2 个答案:

答案 0 :(得分:0)

来自javascript的回调将在后台线程上执行,而不是可以触及视图层次结构的UI线程。从您的javascript回调(即performClick),您应该将任务发回UI线程。

此文档应该有所帮助:http://developer.android.com/training/multiple-threads/communicate-ui.html

答案 1 :(得分:0)

我需要将我的图片代码放在其中:

context.runOnUiThread(new Runnable()
{
   ...
   ...
   ...
});