您的位置:首页 > 其它

图片下载(不使用开源框架)

2015-11-26 15:00 288 查看
下载单张图片:

package com.android.findpicture;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends Activity {

ImageView show;
EditText editText;
Button download;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

show = (ImageView)findViewById(R.id.show);
editText = (EditText)findViewById(R.id.editText);
download = (Button)findViewById(R.id.download);

final Handler handler = new Handler(){

@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);

if (msg.what == 0x123){
Bitmap bitmap = (Bitmap) msg.obj;
show.setImageBitmap(bitmap);
}
}
};

download.setOnClickListener(new OnClickListener() {
// http://p0.so.qhimg.com/t01a918ebc937cc3885.jpg @Override
public void onClick(View v) {

final String uri = editText.getText().toString();

new Thread(new Runnable(){
public void run() {

Bitmap bitmap = getImageFromNet(uri);

if (bitmap != null){
Message msg = new Message();
msg.what = 0x123;
msg.obj = bitmap;

handler.sendMessage(msg);
}
}}).start();
}
});
}

private Bitmap getImageFromNet(String uri){

HttpURLConnection conn = null;
try {
URL url = new URL(uri);
conn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(30000);

conn.setDoInput(true);

conn.setReadTimeout(30000);
conn.connect();

InputStream in = conn.getInputStream();

Bitmap bitmap = BitmapFactory.decodeStream(in);

return bitmap;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (conn != null){
conn.disconnect();
}
}
return null;
}

}


在 AndroidManifest.xml 中注册访问网络的权限:

<uses-permission android:name="android.permission.INTERNET"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: