2011-05-01 27 views
1

我的应用程序当前通过我的服务器请求包含一些文本和其他数据的JSON文件。我想添加功能,以便它也通过相同的文件下载非常小的图像(如图标)[无需创建额外的请求]。是否有可能这样做,我将如何去做(base64?)在JSON中包含小图像Android应用程序

回答

1

应该是非常合理的:看看http://developer.android.com/reference/android/util/Base64.html。您只需要:

  1. 将您的图标读取到服务器上的byte []数组中。
  2. (假设你的服务器在java中)使用类似http://iharder.sourceforge.net/current/java/base64/的东西,通过http://iharder.sourceforge.net/current/java/base64/api/index.html?Base64.OutputStream.html将byte []数组写入StringOutputStream。
  3. 将String的内容添加到JSON文件。
  4. 在Android设备上调用http://developer.android.com/reference/android/util/Base64.html#decode%28java.lang.String,%20int%29将JSON属性转换为byte []数组。
  5. 然后,您可以将字节数组传递给http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeByteArray%28byte[],%20int,%20int,%20android.graphics.BitmapFactory。选项%29或它的一个同类功能(你可能需要使用图像格式/编码来让它正确地吞噬你的字节数组)。

瞧!你有一个你可以使用的位图。

让我知道如何解决。

+0

完美的工作:除了base64只有2.2 +。任何想法较低的版本? – yydl 2011-05-01 16:58:11

+0

iharder库是可用的:据我所知(我没有在Android上构建它)它应该工作得很好。它具有http://iharder.sourceforge.net/current/java/base64/api/index.html?Base64.InputStream.html,您可以将其提供给ByteArrayOutputStream以获得相同的效果。 – Femi 2011-05-01 16:59:38

相关问题