- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 AsyncTask 中使用 BitmapFactory.decodeStream()
从 Internet 下载位图。在我的应用程序中,我有一个图像 ListView ,我只想下载用户可以看到的位图,并取消所有对用户滚动通过的位图的下载请求。下载完成后,我将位图缓存起来,这样就不必再次下载了。要取消位图下载,我调用了 AsyncTask.cancel(true)
。
问题是有时 BitmapFactory.decodeStream()
会输出一个警告,指出发生了 InterruptedIOException(因为我在下载任务时取消了它)但它实际上不会抛出异常。通常发生这种情况时,该函数会返回半载位图。不幸的是,由于返回的位图不为空,因此应用程序假设下载成功并缓存了这个下载一半的位图。从这时起,用户将一直停留在加载了一半的位图上,直到缓存被清除。
所以我的问题是,有没有办法检查 BitmapFactory.decodeStream()
是否真的成功下载了位图?
最佳答案
尽管我没有想出一种方法来判断 BitmapFactory.decodeStream()
是否完成且没有错误,但我确实找到了解决方法。我只是在调用 BitmapFactory.decodeStream()
之前和调用 BitmapFactory.decodeStream()
之后检查任务是否已被取消,以确定在 期间任务是否已被取消>BitmapFactory.decodeStream()
调用。如果有,我只是假设 BitmapFactory.decodeStream()
失败(它可能已经失败)并执行必要的清理代码以确保位图永远不会进入缓存。
关于android - 确定 BitmapFactory.decodeStream() 是否成功且没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27147237/
这是我的代码...我在 imageBitmap = BitmapFactory.decodeStream(is2,null, options); 处收到异常 NULL; 第一次可以解码,但为什么现在,
我应该从互联网获取图像并将其显示在我的 Activity 中。为此,我使用 asynctask 类。我忘记在我的 list 文件中提及互联网权限,并且应用程序成功运行,没有给出任何异常,并且能够获取模
我在这里从 Cursor 获取值: if (mProfileCursor.moveToFirst()) { byte[] blob = mProfileCursor.getBl
我在尝试解码大小为 2448x2448 像素的照片时遇到了一个奇怪的行为。在代码中,我正在计算应该应用 6 的 inSampleSize(基于生成的位图所需的大小),并且当我使用这些选项调用 Bitm
假设我们有一个工作线程,它使用一些连接流调用 BitmapFactory.decodeStream,如下所示: Bitmap bitmap = BitmapFactory.decodeStream(n
我正在尝试将输入流解码为位图,代码非常简单: Bitmap myBitmap = BitmapFactory.decodeStream(myStream); 但输出位图的质量太低(有时,有时质量很好)
我正在尝试领养 bitmap resizing教程 - 唯一的区别是我使用 decodeStream 而不是 decodeResource。这很奇怪,但是没有任何操作的 decodeStream 给了
我知道这个问题出现了很多次,但我找不到任何对我有帮助的解决方案。我正在从网页下载头像并将其保存在内部存储中。 在我的 Activity 中: // check if user
我们需要对从 InputStream 接收到的图像进行下采样。它是从某个 URL 接收到的图像,它可以非常小或非常大。为了将此图像放入内存,我们必须对其进行下采样。首先,我们借助 inJustDeco
我正在尝试从内部存储中保存和检索位图,但每次我尝试加载位图时,BitMapFactory 都会抛出异常: BitmapFactory: Unable to decode stream: java.io
我正在尝试用下一个代码获取一张刚刚用相机拍摄的照片,但我总是遇到同样的错误: skia(446): --- SkImageDecoder::Factory returned null (它不会抛出异
我们使用下面的函数从 URL 下载图像。有时,BitmapFactory.decodeStream 我们会得到 null。由于这个问题,收到的通知没有图像。任何人都可以帮助我们解决该问题.. 这是我的
我在我的应用程序中使用我自己的 Android ViewFlow 示例实现。我正在从网络服务下载加密图像,而不是将它们保存在 SD 卡上。我正在使用 viewflow 即时解密图像并显示它们。但问题是
显然这是一项昂贵/耗时的操作。有什么办法可以改善这个? Bitmap bm = BitmapFactory.decodeStream((InputStream) new URL(
我试图从图像的路径中获取位图图像。但是 BitmapFactory.decodeStream 返回 null 值。 代码: URL url = new URL(path); HttpURLConnec
我看了很多关于解码位图的内存分配问题的相关帖子,但使用官网提供的代码仍然无法找到以下问题的解决方案。 这是我的代码: public static Bitmap decodeSampledBitmapF
在从 BitmapFactory.decodeStream(imagestream) 返回之前,我需要调整/缩小我从图库中选择的图像。当我选择大图像时,它会抛出 OutOfMemory Excepti
我在 AsyncTask 中使用 BitmapFactory.decodeStream() 从 Internet 下载位图。在我的应用程序中,我有一个图像 ListView ,我只想下载用户可以看到的
我有以下异步任务,它应该只从给定的 URL 加载图像。图片确实存在,我可以访问它们 private class FetchVehicleImage extends AsyncTask {
我的代码旨在在按下 UI 按钮时使用来自服务器的图像更新 ImageView。 下面显示的客户端代码是一个 Runnable,在按下按钮时运行。服务器是一个桌面 Java 应用程序,在后台运行 ffm
我是一名优秀的程序员,十分优秀!