【发布时间】:2018-06-20 09:43:42
【问题描述】:
第一次在这里提问。 我是 Android Studio 的新手,我正忙于在其中创建一个应用程序,该应用程序将扫描包含 Base64 编码图像(以 Base64 字符串的形式)的 QR 码。然后需要对该字符串进行解码,并且必须显示生成的图像。我想我已经设法使用以下方法正确解码:
byte[] imageBytes = Base64.decode(result.getContents(), Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(imageBytes, 0,imageBytes.length);
其中“result.getContents()”返回要转换的Base64字符串。
让我感到困惑的部分是使用 ImageView 和 XML 显示它。我目前有这个:
ImageView image = (ImageView) findViewById(R.id.image);
image.setImageBitmap(decodedByte);
我对如何使用 XML 显示此图像感到有些困惑,因为我了解“findViewById(R.id.image);”中的“图像”是 XML 图像 ID。我见过的所有示例都涉及显示可绘制的静态图像,但我想显示一个图像,该图像会根据我正在解码的 Base64 字符串而改变。我刚开始学习 XML,我知道用于可绘制图片的常用 ImageView 代码块看起来像这样:
<ImageView
android:id="@+id/x2"
android:src="@drawable/book"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
我的问题是如何更改它以显示我已解码的图像。
【问题讨论】:
-
你测试过你的代码吗?它表现如何?对我来说看起来不错,或者我错过了一些东西。检查codeChimp的答案
-
每次解码不同的 base64 图像字符串时,都会创建不同的位图,并将该位图加载到 ImageView。所以无需担心任何事情。代码看起来很可靠。一定要获取同一个 ImageView 的引用。检查 CodeChimp 的答案。