如何使用HttpURLConnection进行图片下载请求?
- 内容介绍
- 文章标签
- 相关推荐
本文共计263个文字,预计阅读时间需要2分钟。
效果图:+页面代码:+public class HttpJpgActivity extends Activity {+private ImageView view;+private Handler handler;+private File file=new File(Environment.getExternalStorageDirectory(), baidu.jpg);+@Override+protected void onC+{+// 代码内容省略+}+}
效果图:
页面代码:
public class HttpJpgActivity extends Activity {
private ImageView view;
private Handler handler;
private File file = new File(Environment.getExternalStorageDirectory(), "baidu.jpg");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.item_image);
view = (ImageView) findViewById(R.id.iv_city);
new Thread(new ImageThread()).start();
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
try {
FileInputStream fileInputStream = new FileInputStream(file);
Bitmap bitmap = BitmapFactory.decodeStream(fileInputStream);
view.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
};
}
public class ImageThread implements Runnable {
@Override
public void run() {
try {
URL url = new URL("www.baidu.com/img/bdlogo.png");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(3000);
urlConnection.setReadTimeout(3000);
urlConnection.connect();
FileOutputStream fileOutputStream = new FileOutputStream(file);
if (urlConnection.getResponseCode() == 200) {
InputStream inputStream = urlConnection.getInputStream();
byte[] bytes = new byte[1024];
int len;
while ((len = inputStream.read(bytes)) != -1) {
fileOutputStream.write(bytes, 0, len);
}
//将缓冲刷入文件
fileOutputStream.flush();
handler.sendEmptyMessage(0x001);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
本文共计263个文字,预计阅读时间需要2分钟。
效果图:+页面代码:+public class HttpJpgActivity extends Activity {+private ImageView view;+private Handler handler;+private File file=new File(Environment.getExternalStorageDirectory(), baidu.jpg);+@Override+protected void onC+{+// 代码内容省略+}+}
效果图:
页面代码:
public class HttpJpgActivity extends Activity {
private ImageView view;
private Handler handler;
private File file = new File(Environment.getExternalStorageDirectory(), "baidu.jpg");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.item_image);
view = (ImageView) findViewById(R.id.iv_city);
new Thread(new ImageThread()).start();
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
try {
FileInputStream fileInputStream = new FileInputStream(file);
Bitmap bitmap = BitmapFactory.decodeStream(fileInputStream);
view.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
};
}
public class ImageThread implements Runnable {
@Override
public void run() {
try {
URL url = new URL("www.baidu.com/img/bdlogo.png");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(3000);
urlConnection.setReadTimeout(3000);
urlConnection.connect();
FileOutputStream fileOutputStream = new FileOutputStream(file);
if (urlConnection.getResponseCode() == 200) {
InputStream inputStream = urlConnection.getInputStream();
byte[] bytes = new byte[1024];
int len;
while ((len = inputStream.read(bytes)) != -1) {
fileOutputStream.write(bytes, 0, len);
}
//将缓冲刷入文件
fileOutputStream.flush();
handler.sendEmptyMessage(0x001);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

