【发布时间】:2020-04-19 10:16:23
【问题描述】:
目前,我正在通过以下方式解码Bitmap:
@GET("api/users/get_avatar/{userId}/default.png")
fun getAvatar(@Header("ApiToken") apiToken: String, @Path("userId") userId: String): Observable<ResponseBody>
在 ViewModel 中解码
val avatar = it()?.let { body ->
val stream = body.byteStream()
BitmapFactory.decodeStream(stream)
}
但是,我想使用更优雅的 Moshi JsonAdapter。
我的电话看起来像:
@GET("api/users/get_avatar/{userId}/default.png")
fun getAvatar(@Header("ApiToken") apiToken: String, @Path("userId") userId: String): Observable<Bitmap>
我正在添加适配器:
return Moshi.Builder()
.add(BitmapAdapter())
但是,很可能我的适配器是错误的:
private class BitmapAdapter {
@ToJson
fun toJson(value: Bitmap): String {
return value.encodeBase64()
}
@FromJson
fun fromJson(value: String): Bitmap {
return value.decodeBase64()
}
}
它应该是什么样子?
【问题讨论】: