搞了好久,还是对这个分批加载搞得不怎么懂,求各位大神相助,解决了的话,泪流满面啊。下面贴出代码  。。
public class MainActivity extends ListActivity{
private ListView listView;
File cache = null;
private String path ="这里是json文件在服务器上的地址";

Handler handler = new Handler(){
public void handleMessage(Message msg) {
 listView.setAdapter(new VideoFileAdapter(MainActivity.this, (List<VideoFile>)msg.obj, 
 R.layout.listview_item, cache));
}
};
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        listView = getListView();
        
        
        cache = new File(Environment.getExternalStorageDirectory(), "cache");
        if(!cache.exists()) cache.mkdirs();
        new Thread(new Runnable() {
public void run() {
try {
List<VideoFile> data = VideoFileService.getJSONVideoFile(path);
handler.sendMessage(handler.obtainMessage(22, data));
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();       
    }
    
protected void onDestroy() {
super.onDestroy();
} }VideoFileService.javapublic class VideoFileService {

public static List<VideoFile> getJSONVideoFile(String path) throws Exception{
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200){
InputStream inStream = conn.getInputStream();
return parseJSON(inStream);
}
return null;
}

private static List<VideoFile> parseJSON(InputStream inStream) throws Exception {
List<VideoFile> videoFiles = new ArrayList<VideoFile>();
byte[] data = StreamTool.read(inStream);
String json = new String(data);
JSONArray array = new JSONArray(json);
for(int i = 0 ; i < array.length() ; i++){
JSONObject jsonObject = array.getJSONObject(i);
VideoFile videoFile = new VideoFile(
jsonObject.getInt("id"),
jsonObject.getString("name"),
jsonObject.getString("image")
 );
videoFiles.add(videoFile);
}
return videoFiles;
}

public static Uri getImage(String path, File cacheDir) throws Exception{
File localFile = new File(cacheDir, MD5.getMD5(path)+ path.substring(path.lastIndexOf(".")));
if(localFile.exists()){
return Uri.fromFile(localFile);
}else{
HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200){
FileOutputStream outStream = new FileOutputStream(localFile);
InputStream inputStream = conn.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len = inputStream.read(buffer)) != -1){
outStream.write(buffer, 0, len);
}
inputStream.close();
outStream.close();
return Uri.fromFile(localFile);
}
}
return null;
}}VideoFileAdapter.javapublic class VideoFileAdapter extends BaseAdapter {
public List<VideoFile> data;
public int listviewItem;
private File cache;
LayoutInflater layoutInflater;

public VideoFileAdapter(Context context, List<VideoFile> data, int listviewItem, File cache) {
this.data = data;
this.listviewItem = listviewItem;
this.cache = cache;
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return data.get(position);
}

public long getItemId(int position) {
return position;
} public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;
TextView textView = null;

if(convertView == null){
convertView = layoutInflater.inflate(listviewItem, null);
imageView = (ImageView) convertView.findViewById(R.id.image);
textView = (TextView) convertView.findViewById(R.id.textView);
convertView.setTag(new DataWrapper(imageView, textView));
}else{
DataWrapper dataWrapper = (DataWrapper) convertView.getTag();
imageView = dataWrapper.imageView;
textView = dataWrapper.textView;
}
VideoFile videoFile = data.get(position);
textView.setText(videoFile.name);
asyncImageLoad(imageView, videoFile.image);
return convertView;
}

    private void asyncImageLoad(ImageView imageView, String path) {
     AsyncImageTask asyncImageTask = new AsyncImageTask(imageView);
     asyncImageTask.execute(path);
}
    
    private final class AsyncImageTask extends AsyncTask<String, Integer, Uri>{
     private ImageView imageView;
public AsyncImageTask(ImageView imageView) {
this.imageView = imageView;
}
protected Uri doInBackground(String... params) {
try {
return VideoFileService.getImage(params[0], cache);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Uri result) {
if(result!=null && imageView!= null)
imageView.setImageURI(result);
}
    } private final class DataWrapper{
public ImageView imageView;
public TextView textView;
public DataWrapper(ImageView imageView, TextView textView) {
this.imageView = imageView;
this.textView = textView;
}
} public void addItem(VideoFile item) {
data.add(item);

}
}