Androidはok Httpを使って画像をダウンロードします。
まずJarパッケージをダウンロードします。
https://github.com/square/okhttp
Android studioを使うなら、comple'comple.squareup.ok http 3:ok http:3..0'に頼るだけです。
二、写真をダウンロードして表示する
使用するのはhanderの方式です。
https://github.com/square/okhttp
Android studioを使うなら、comple'comple.squareup.ok http 3:ok http:3..0'に頼るだけです。
二、写真をダウンロードして表示する
使用するのはhanderの方式です。
package com.liunan.okhttpdemo2;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
public class MainActivity extends AppCompatActivity {
private static final int ERROR = 1;
private static final int SUCCESS = 2 ;
private String url = "http://192.168.1.102:8080/img/a.jpg";
private ImageView mIv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case SUCCESS:
mIv.setImageBitmap((Bitmap) msg.obj);
break;
case ERROR:
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
break;
}
}
};
/**
*
*/
private void initView() {
mIv = (ImageView) findViewById(R.id.main_iv);
}
/**
*
*/
public void getPic(View v){
new Thread(){
@Override
public void run() {
// okHttp get ,
try {
OkHttpClient client = new OkHttpClient();
//
Request request = new Request.Builder().url(url).build();
//
ResponseBody body = client.newCall(request).execute().body();
//
InputStream in = body.byteStream();
// bitmap
Bitmap bitmap = BitmapFactory.decodeStream(in);
// Hanlder
Message msg = Message.obtain();
msg.what = SUCCESS;
msg.obj = bitmap;
handler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
//
Message msg = Message.obtain();
msg.what = ERROR;
handler.sendMessage(msg);
}
}
}.start();
}
}
ネットワーク要求をツールとして書いてもいいです。
package com.liunan.okhttpdemo2;
import java.io.IOException;
import java.io.InputStream;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by on 2016-03-27.
*/
public class OkHttpUtils {
OkHttpClient client = new OkHttpClient();
/**
*
* @param url
* @return
*/
public InputStream getInpuStream(String url) throws IOException {
//
Request request = new Request.Builder()
.url(url).build();
//
InputStream in = client.newCall(request).execute().body().byteStream();
return in;
}
/**
*
* @param url
* @return
* @throws IOException
*/
public String getString(String url) throws IOException {
//
Request request = new Request.Builder()
.url(url).build();
//
Response response = client.newCall(request).execute();
return response.body().string();
}
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。