android okhttp解析图片选择bean类里的图片
时间: 2023-07-18 13:04:32 浏览: 47
如果你使用 OkHttp 来获取图片,一种常见的做法是将图片转换为字节数组,然后将字节数组作为响应体返回,最后在客户端将字节数组转换为图片。下面是一个示例代码:
```java
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://example.com/image.png")
.build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
byte[] bytes = response.body().bytes();
// 将字节数组转换为 Bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
// 在 ImageView 中显示图片
imageView.setImageBitmap(bitmap);
```
如果你想要将图片作为响应体的一部分,可以定义一个 JavaBean 类来表示图片:
```java
public class ImageBean {
private String name;
private byte[] data;
public ImageBean(String name, byte[] data) {
this.name = name;
this.data = data;
}
public String getName() {
return name;
}
public byte[] getData() {
return data;
}
}
```
然后在服务端将图片转换为字节数组后,将字节数组和图片名称封装到 ImageBean 对象中,最后以 JSON 格式返回给客户端。客户端可以使用 Gson 库将 JSON 字符串转换为 ImageBean 对象,例如:
```java
Gson gson = new Gson();
ImageBean imageBean = gson.fromJson(jsonString, ImageBean.class);
byte[] data = imageBean.getData();
// 将字节数组转换为 Bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
// 在 ImageView 中显示图片
imageView.setImageBitmap(bitmap);
```