如何使用Android中的Retrofit 2.0和DownloadManager从URL下载文件?我可以使用Retrofit 1.9做到这一点,但请帮我改造Retrofit 2.0。任何帮助将非常感谢。另请告诉我如何在Android设备屏幕上显示它。
答案 0 :(得分:0)
你问过三个问题。让我试着逐一回答:
1)使用Retrofit 2.0下载文件: 只有Retrofit 1.9和2.0中的电话之间的区别是:
Retrofit 1.9中的同步:
public interface GetAPI {
@GET("/list")
Model getModel();
}
Retrofit 1.9中的异步
public interface GetAPI {
@GET("/list")
void getModel(Callback<Model> cb);
}
现在在Retrofit 2.0中你可以简单地声明:
public interface GetAPI {
@GET("/list")
Call<Model> getModel();
}
Retrofit 2.0中的同步调用
Call<Model> call = service.getModel();
Model model = call.execute();
Retrofit 2.0中的异步调用
Call<Model> call = service.getModel();
call.enqueue(new Callback<Model>() {
@Override
public void onResponse(Response<Model> response) {
// Get result Model from response.body()
}
@Override
public void onFailure(Throwable t) {
}
});
您可以看到:http://www.androidtutorialpoint.com/networking/retrofit-android-tutorial/
2)使用DownloadManager下载:您可以在网上轻松查看有关此内容的任何教程。主要有两个步骤:
//创建android下载管理器的请求
downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(uri);
//排队下载并保存到referenceId
downloadReference = downloadManager.enqueue(request);
3)在设备屏幕上显示。因此显示可以是图像或JSON数组。所以我在这里告诉你关于Image的事。使用以下代码:
int width, height;
ImageView image = (ImageView) findViewById(R.id.imageViewId);
Bitmap bMap = BitmapFactory.decodeFile(getExternalFilesDir(null) + File.separator + "AndroidTutorialPoint.jpg");
width = 2*bMap.getWidth();
height = 6*bMap.getHeight();
Bitmap bMap2 = Bitmap.createScaledBitmap(bMap, width, height, false);
image.setImageBitmap(bMap2);
我希望我的解释对你有帮助。祝一切顺利。