2016-06-28 7 views
1

AndroidでRetrofit 2.0とDownloadManagerを使用してURLからファイルをダウンロードするにはどうすればよいですか?私はRetrofit 1.9を使用してこれを行うことができますが、Retrofit 2.0のために私を助けてください。どんな助けでも大歓迎です。また、私はそれをアンドロイドデバイス画面に表示する方法を教えてください。Retrofit 2.0とDownloaManagerを使用してファイルをダウンロード

+0

可能でしょうか。しかし、あなたの試みの例がなければ、どこが間違っているのかを伝えるのは難しいです – Mike

+0

こんにちはMike、実際には、Retrofit 2.0の非同期リクエストの構文を取得できませんでした。情報のおかげで –

答えて

0

3つの質問があります。私はそれらを一つずつ答えてみましょう:

1)レトロフィット2.0を使用してファイルをダウンロードします。 レトロフィット1.9と2.0でのコール間の唯一の違いはある:レトロフィット1.9で

同期:

public interface GetAPI { 

@GET("/list") 
Model getModel(); 
} 

レトロフィットにおける非同期

public interface GetAPI { 

@GET("/list") 
void getModel(Callback<Model> cb); 
} 

1.9は今レトロフィット2.0には、単に宣言することができます。

レトロフィット2.0で
public interface GetAPI { 

@GET("/list") 
Call<Model> getModel(); 
} 

同期呼び出しレトロフィット2.0で

Call<Model> call = service.getModel(); 
Model model = call.execute(); 

非同期呼び出し

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を使用してダウンロードしてください:あなたは簡単に任意のを見ることができますチュートリアルWeb上でこれについて。主に2つのステップがあります:

//は、Androidのダウンロードマネージャの要求

downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); 
DownloadManager.Request request = new DownloadManager.Request(uri); 

//エンキューダウンロードを作成し、この参照してください

downloadReference = downloadManager.enqueue(request); 
referenceId

に保存: http://www.androidtutorialpoint.com/networking/android-download-manager-tutorial-download-file-using-download-manager-internet/

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); 

:次のコードを使用します。ではごきげんよう。

+0

ありがとうございます。私はこれを試してみましょう。 –

+0

働いています。ありがとう:) –

関連する問題