gpt4 book ai didi

android - 如何创建 imageView 的 progressDialog onload?

转载 作者:搜寻专家 更新时间:2023-11-01 09:01:43 25 4
gpt4 key购买 nike

我想将大型/复杂的 svg 图像文件加载到我的 imageView 中。在我的 HTC Desire S 和 Lenovo a60 上加载 svg 需要时间。分别约为 5 秒和 10 秒。

现在我的应用程序在 imageView 完全加载前大约 5 秒没有响应

我使用这个简单的代码加载图像..

    svg = SVGParser.getSVGFromResource(getResources(), R.raw.gf);
mImageView.setImageDrawable(svg.createPictureDrawable());

我看起来像 (webView)

webView.setWebViewClient(new WebViewClientEx(MainActivity.this, DEBUG) {

@Override
public void onPageFinished(final WebView view, String url) {
...........
.............}
});

我在之前的项目中使用过...

最后是我的问题:

1.) 使应用看起来响应迅速的最佳方法是什么?

我打算使用 asynctask 但不知道如何使用它...它适用于此吗?

2.) 图片加载完成后是否有监听器?

我这里的方法是在我加载 imageView 时显示 progressDialog,并在 imageView 完全加载后隐藏它。

您认为更适合用于显示/隐藏 progressDialog 的其他建议?谢谢!

最佳答案

在这里使用异步任务。 (加载器也可以工作,但异步任务更容易解释。)

 private class LoadSVGTask extends AsyncTask<Integer, Void, Drawable> {

protected Drawable doInBackground(Integer... res) {
mProgressBar.setVisibility(View.Visible);
svg = SVGParser.getSVGFromResource(getResources(),res);
Drawable d = svg.createPictureDrawable();
return d;
}

// gets executed in main thread
protected void onPostExecute(Drawable result) {
mProgressBar.setVisibility(View.Gone);
mImageView.setImageDrawable(result);
}
}

启动任务:

new LoaderSVGTask().execute(R.raw.gf, null, null);

参见:http://developer.android.com/reference/android/os/AsyncTask.html

关于android - 如何创建 imageView 的 progressDialog onload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14623146/

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