通过URl访问网络图片资源:
package com.engineer.shizhibin.httpdemo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
private EditText mEdit;
private Button mButton;
private ImageView mImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEdit = (EditText) this.findViewById(R.id.url);
mImage = (ImageView)this.findViewById(R.id.image);
mEdit.setText("https://mediaservice.audi.com/media/live/50800/fly1400x601n8/868/2018.png?wid=291");
}
public void getImage(View view) {
final String url = mEdit.getText().toString().trim();
if(url.equals("")) {
Toast.makeText(this,"路径不能为空",Toast.LENGTH_LONG).show();
}else{
new Thread() {
public void run() {
HttpURLConnection connection = null;
URL url1 = null;
try {
url1 = new URL(url);
connection = (HttpURLConnection)url1.openConnection();
connection.setRequestMethod("GET");
InputStream in = connection.getInputStream();
byte[] result = StreamTool.getBytes(in);
final Bitmap bitmap = BitmapFactory.decodeByteArray(result,0,result.length);
runOnUiThread(new Runnable() {
public void run() {
mImage.setImageBitmap(bitmap);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
}
}
处理返回流的类:
package com.engineer.shizhibin.httpdemo;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
/**
* Created by 13922 on 2018/6/18.
*/
public class StreamTool {
/**
* 把一个inputstream里面的内容转化成一个byte[]
*/
public static byte[] getBytes(InputStream is) throws Exception{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while((len = is.read(buffer))!=-1){
bos.write(buffer, 0, len);
}
is.close();
bos.flush();
byte[] result = bos.toByteArray();
return result;
}
}
在Manifest.xml中添加访问网络权限:
<uses-permission android:name="android.permission.INTERNET">
</uses-permission>