package com.example.yjyyj.myapplication;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class MainActivity
extends AppCompatActivity {
private List<bdlogo>
bdlist =
new ArrayList<>();
private int num =
0;
private ListAdapter
adapter;
private Bitmap
bitmap;
private String
url =
"http://www.baidu.com/img/baidu_logo.gif";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main);
init();
adapter =
new ListAdapter(MainActivity.
this,R.layout.
item,
bdlist);
ListView listView= (ListView)findViewById(R.id.
list);
listView.setAdapter(
adapter);
NetworkOperation();
}
final Handler
cwjHandler =
new Handler();
final Runnable
mUpdateResults =
new Runnable() {
public void run() {
updateUI();
}
};
protected void NetworkOperation() {
Thread t =
new Thread() {
public void run() {
try {
Thread.
sleep(
3000);
}
catch(Exception e){}
adapter.
flag=
true;
for(
int i=
0;i<
16;i++) {
bitmap = loadRmoteImage(
url);
cwjHandler.post(
mUpdateResults);
}
}
};
t.start();
}
private void updateUI() {
if(
bitmap!=
null){
ini(
num,
bitmap);
num+=
2;
}
adapter.notifyDataSetChanged();
}
public void init(){
for(
int i =
0; i<
32;i++){
bdlogo bd =
new bdlogo(String.
valueOf(i),
null);
bdlist.add(bd);
}
}
public void ini(
int i,Bitmap b){
bdlogo bd =
new bdlogo(String.
valueOf(i),b);
bdlist.set(i,bd);
}
private Bitmap loadRmoteImage(String imgUrl) {
URL fileURL =
null;
try {
fileURL =
new URL(imgUrl);
}
catch (MalformedURLException err) {
err.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) fileURL
.openConnection();
conn.setDoInput(
true);
conn.connect();
InputStream is = conn.getInputStream();
int length = (
int) conn.getContentLength();
if (length != -
1) {
byte[] imgData =
new byte[length];
byte[] buffer =
new byte[
512];
int readLen =
0;
int destPos =
0;
while ((readLen = is.read(buffer)) >
0) {
System.
arraycopy(buffer,
0, imgData, destPos, readLen);
destPos += readLen;
Thread.
sleep(
100);
}
return BitmapFactory.
decodeByteArray(imgData,
0,
imgData.
length);
}
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
}