安卓okhttp加载网络图片
时间: 2023-10-14 18:19:09 浏览: 138
使用 OkHttp 库加载网络图片可以通过以下步骤实现:
1. 添加 OkHttp 依赖库到项目中,可以在项目的 build.gradle 文件中添加以下代码:
```
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
}
```
2. 在需要加载图片的地方,使用 OkHttp 发起网络请求并获取图片数据,例如:
```
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(imageUrl)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
InputStream inputStream = response.body().byteStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
// 在 UI 线程更新 ImageView
runOnUiThread(() -> imageView.setImageBitmap(bitmap));
} catch (IOException e) {
e.printStackTrace();
}
```
这里使用 OkHttpClient 发起网络请求,获取到响应后判断是否成功,如果成功则从响应体获取输入流,并使用 BitmapFactory 将输入流转换为 Bitmap 对象。最后使用 runOnUiThread 在 UI 线程更新 ImageView 显示图片。
注意:这段代码应该在后台线程中执行,避免在主线程中进行网络请求而导致 ANR。
阅读全文