下载网路图片到SD卡上新建文件夹当中

1.DownloadImages.java文件

package cn.com;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;

public class DownloadImages extends Activity {
//这下面3个参数用于网络连接服务器端,获取图片流数据
private final static String HOST = "127.0.0.1";
private final static int PORT = 8080;
private final static String HOST_IP = "http://" + HOST + ":" + PORT;
// 图片接口路径
private static String imageURL = HOST_IP+"************";
private int bitmapIndex = 0;
private File dFile1;
private static Bitmap[] bitmapFactory = new Bitmap[6];
private FileOutputStream outs1;
private int index = 84;
private String fileDirectory = "";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getSdCardPath();
imageGet();
}
//创建一个SD卡上的文件夹
public void getSdCardPath() {
File sdcardDir = Environment.getExternalStorageDirectory();
String path = sdcardDir.getParent() + sdcardDir.getName();
fileDirectory = path + java.io.File.separator + "Demo";
createFile();
}

public void createFile() {
try {
// 1.判断是否存在sdcard
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
//目录
System.out.println("_______create Directory________");
File path = new File(fileDirectory);
if (!path.exists()) {
// 2.创建目录,可以在应用启动的时候创建
path.mkdirs();
}
//文件
/*File f = new File(fileDirectory + "/notes.txt");
if (!f.exists()) {
// 3.创建文件
f.createNewFile();
}*/

}
} catch (Exception e) {
e.printStackTrace();
}
}
//可以通过自己构建服务器端文件,传递一定参数进行图片流下载
public void imageGet() {
try {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
HttpPost httpost = new HttpPost(imageURL);
List nvps = new ArrayList();
nvps.add(new BasicNameValuePair("type", "image"));
nvps.add(new BasicNameValuePair("id", String.valueOf(19)));
nvps.add(new BasicNameValuePair("fileId", String
.valueOf(bitmapIndex + 1)));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
// This is always a final response
response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
System.out.println("______"
+ Environment.getExternalStorageDirectory());
dFile1 = new File(fileDirectory, (index++) + ".jpg");
outs1 = new FileOutputStream(dFile1);
byte buf[] = new byte[1024];
int numread = 0;
do {
// Start reading data from the URL stream
numread = is.read(buf);
if (numread < 0) {
System.out.println("the end !!!!");
break;
}
outs1.write(buf, 0, numread);

} while (true);
//保存在一个位图数组当中,方面后续使用
bitmapFactory[bitmapIndex++] = BitmapFactory.decodeFile(dFile1
.getPath());

if (bitmapIndex == 6) {
System.out.println("_________download over__________");
is.close();
outs1.close();
} else {
imageGet();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

2.当然在配置文件当中,我们需要添加如下:






你可能感兴趣的:(Android(网络相关))