android studiot图片上传下载
时间: 2023-12-07 08:40:10 浏览: 37
Android Studio中实现图片的上传下载可以通过以下步骤完成:
1.导入相关依赖库,例如OkHttp、Retrofit等。
2.在AndroidManifest.xml文件中添加网络权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
3.创建一个接口,定义上传下载的方法,例如:
```java
public interface ApiService {
//上传图片
@Multipart
@POST("upload")
Call<ResponseBody> uploadImage(@Part MultipartBody.Part image);
//下载图片
@GET("download/{fileName}")
Call<ResponseBody> downloadImage(@Path("fileName") String fileName);
}
```
4.创建一个Retrofit实例,并调用接口中的方法:
```java
//创建Retrofit实例
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://your.api.url/")
.addConverterFactory(GsonConverterFactory.create())
.build();
//创建ApiService实例
ApiService apiService = retrofit.create(ApiService.class);
//上传图片
File file = new File("your/image/path");
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part image = MultipartBody.Part.createFormData("image", file.getName(), requestBody);
Call<ResponseBody> call = apiService.uploadImage(image);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
//上传成功
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
//上传失败
}
});
//下载图片
Call<ResponseBody> call = apiService.downloadImage("your_image_file_name");
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
//下载成功
InputStream inputStream = response.body().byteStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
//显示图片
imageView.setImageBitmap(bitmap);
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
//下载失败
}
});
```