以编程方式设置时,ImageView始终返回空白

时间:2019-03-22 04:18:48

标签: android android-bitmap

我还是Android的新手,想知道是否存在从Input Stream加载图像的正确方法。

如果我直接从数据库中加载图像,该图像将返回图像,没有任何问题。 这是我的代码,用于从数据库设置ImageView位图:

varIDCardImageBinary = rs.getBinaryStream("IDCardImage");
classMyData.setDataInputStream(varIDCardImageBinary,"IDCardImage"); // Save Binary to a variable inside my Class
varimgIDCardView.setImageBitmap(BitmapFactory.decodeStream(classMyData.getInputStream("IDCardImage")));

上面的代码工作正常,并且您可以看到。我实际上在将图像保存到变量之后调用该图像。

如果类中的变量不为空,我还将放置该函数,则将通过该变量设置ImageView位图,而无需再次从数据库调用。这是我的调用图片的代码:

varIDCardImageBinary = classMyData.getInputStream("IDCardImage");
varimgIDCardView.setImageResource(0);
varimgIDCardView.setImageBitmap(BitmapFactory.decodeStream(varIDCardImageBinary));

由于某种原因,ImageView仍然空白,我也尝试了下面的代码来查看变量是否为空:

Toast.makeText(DocumentAccountActivity.this, "Loaded From Class " + varIDCardImageBinary.toString(), Toast.LENGTH_SHORT).show();

但是结果根本不是空的。即使如此,ImageView仍返回空白。我设置位图有什么问题吗?正确的调用方式是什么?

已编辑:

我也尝试过像primo建议那样使用Glide,但是结果仍然相同。 这是我的代码:

varIDCardImageBinary = classMyData.getInputStream("IDCardImage");
Glide.with(DocumentAccountActivity.this)
                .asBitmap().load(varIDCardImageBinary).into(varimgIDCardView);

以防万一,我是否直接从数据库中调用图像。它工作正常。但是我不希望我的客户每次打开活动时都从数据库加载所有数据。

0 个答案:

没有答案