您的位置:首页 > Web前端 > JavaScript

图片下载和json下载(sd卡)

2016-07-05 19:35 369 查看
package com.example.download;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;

import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends ActionBarActivity {
String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_local&count=20&min_behot_time=1465198212&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1465265107&loc_mode=5&user_city=%E5%8C%97%E4%BA%AC&lac=4527&cid=28883&iid=4464422609&device_id=17258390367&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SAMSUNG&os_api=19&os_version=4.4.4&uuid=353040417908000&openudid=84c1c7b192991cc6";
private ImageView imageView;
String imagePath="https://img.alicdn.com/tps/TB1ivRiKFXXXXbhXXXXXXXXXXXX-520-280.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//		load();

imageView = (ImageView) findViewById(R.id.imageView);

//		loadImage();
//下载json文件
loadDataXutils();

ImageLoader instance = ImageLoader.getInstance();
instance.displayImage(imagePath, imageView);
}
//ImageLoader下载图片
private void loadImage() {

ImageLoader instance = ImageLoader.getInstance();

instance.loadImage(imagePath, new ImageLoadingListener() {

@Override
public void onLoadingStarted(String arg0, View arg1) {
// TODO Auto-generated method stub

}

@Override
public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
// TODO Auto-generated method stub

}

@Override
public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
// TODO Auto-generated method stub
//				imageView.setImageBitmap(arg2);
System.out.println("下载成功");
}

@Override
public void onLoadingCancelled(String arg0, View arg1) {
// TODO Auto-generated method stub

}
});

}

protected void loadDataXutils() {
HttpUtils httpUtils = new HttpUtils();
httpUtils.download(path, getCacheDir().getPath() + "/1409aaaa.json",
new RequestCallBack<File>() {

@Override
public void onSuccess(ResponseInfo<File> arg0) {/*

File file = arg0.result;

FileInputStream fin =null;
FileOutputStream fout = null;
try{
fin = new FileInputStream(file);
fout = new FileOutputStream(getCacheDir().getPath() + "/12.json");
byte [] arr =new byte[1024];

while(true){
int temp = fin.read(arr,0,arr.length);
if(temp == -1){            //读取到末端返回-1
break;
}
fout.write(arr,0,temp);
}

}catch(Exception e){
System.out.println(e);
}
finally{            //关掉流
try{
fout.close();
fin.close();
}catch(Exception e){
System.out.println(e);
}

}

*/}

@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub

}
});
}

protected void loadData() {
HttpClient client = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(path);
try {
HttpResponse httpResponse = client.execute(httpPost);

HttpEntity entity = httpResponse.getEntity();

InputStream inputStream = entity.getContent();

// getFileStreamPath(name);

BufferedReader bufferedReader = new BufferedReader( new
InputStreamReader(inputStream));

BufferedWriter bufferedWriter = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(getCacheDir()
.getPath() + "/ccc.json", true)));

/*String s;

while ((s = bufferedReader.readLine()) != null) {

bufferedWriter.write(s);

}*/

/*byte[] buffer = new byte[10240];
int i;
while ((i = inputStream.read(buffer)) != -1) {

bufferedWriter.write(new String(buffer));
}*/

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

============================================================================================

package com.example.download;

/**
*
*/

import java.io.File;
import java.io.IOException;

import com.nostra13.universalimageloader.cache.disc.DiskCache;
import com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiskCache;
import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.MemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.FIFOLimitedMemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.LargestLimitedMemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.LimitedAgeMemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration.Builder;

import android.app.Application;
import android.widget.Toast;

/**
* @author WJL
*
*/
public class MyApplication extends Application {
private int maxMemory;

@Override
public void onCreate() {
super.onCreate();
System.out.println("MyApplication");

maxMemory = ((int) Runtime.getRuntime().maxMemory()) / 1024 / 1024;
System.out.println("最大内存:"+maxMemory);
Toast.makeText(this, "   "+maxMemory, 0).show();

//初始ImageLoader
initImageLoader();

}

/**
*
//初始ImageLoader
*/
@SuppressWarnings("deprecation")
private void initImageLoader() {

//得到ImageLoader实例
ImageLoader imageLoader=ImageLoader.getInstance();

//得到ImageLoader配置的建筑者对象
ImageLoaderConfiguration.Builder builder=new Builder(this);

//设置磁盘(sd卡)缓存的大小限制
//		builder.diskCacheSize(maxCacheSize);
try {
//设置磁盘(sd卡)缓存策略,参数一:缓存文件的路径,参数二:文件名的命名方法,有MD5,HashCode,参数三:缓存的最大内存
builder.discCache(new LruDiskCache(new File("/storage/sdcard0/cache/"), new Md5FileNameGenerator(), 2*1024*1204));
//设置磁盘(sd卡)缓存策略,限制缓存时间;参数一:缓存文件的路径,参数二:缓存文件的存活时间,系统当前时间-文件的最新修改时间 > maxAge
//			builder.discCache(new LimitedAgeDiskCache(cacheDir, maxAge) );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//设置内存缓存的大小限制,默认是最大内存的1/8
builder.memoryCacheSize(maxMemory/8);

//设置内存缓存策略                根据先进先出的原则上删除多余对象  LinkedList  参数一:设置的缓存内存大小
//		builder.memoryCache(new FIFOLimitedMemoryCache(sizeLimit));

//设置内存缓存策略          先删除占内存最大的图片      HashMap    参数一:设置的缓存内存大小
//  	builder.memoryCache(new LargestLimitedMemoryCache(sizeLimit));

//	   设置内存缓存策略    Lru算法   LinkedHashMap  最大的缓存大小
//		builder.memoryCache(new LruMemoryCache(maxSize))

//设置内存缓存策略        最少被用到的对象会被删除      HashMap    参数一:设置的缓存内存大小
//		builder.memoryCache(new UsingFreqLimitedMemoryCache(sizeLimit))

//设置内存缓存策略        最早被添加的对象会被删除     HashMap  参数一:MemoryCache对象   参数二:缓存失效的最大时间
//		builder.memoryCache(new LimitedAgeMemoryCache(cache, maxAge));

//初始化imageLoader配置
imageLoader.init(builder.build());

/*
使用默认的缓存策略
ImageLoader imageLoader2=ImageLoader.getInstance();
ImageLoaderConfiguration.Builder configuration=new ImageLoaderConfiguration.Builder(this);
imageLoader2.init(configuration.build());
*/
}

}

=================================

导包

universal-image-loader-1.9.5.jar

xUtils-2.6.14.jar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: