package
com.bshark.supertelphone.activity;
import
android.app.Activity;
import
android.graphics.drawable.Drawable;
import
android.os.Bundle;
import
android.os.Handler;
import
android.os.Message;
import
android.widget.ImageView;
import
com.bshark.supertelphone.R;
import
com.bshark.supertelphone.ui.adapter.util.AsyncImageLoader;
import
com.bshark.supertelphone.ui.adapter.util.AsyncImageLoader3;
import
java.io.IOException;
import
java.net.URL;
import
java.util.concurrent.ExecutorService;
import
java.util.concurrent.Executors;
public
class
LazyLoadImageActivity
extends
Activity {
final
Handler handler=
new
Handler();
final
Handler handler2=
new
Handler(){
@Override
public
void
handleMessage(Message msg) {
((ImageView) LazyLoadImageActivity.
this
.findViewById(msg.arg1)).setImageDrawable((Drawable)msg.obj);
}
};
private
ExecutorService executorService = Executors.newFixedThreadPool(
5
);
private
AsyncImageLoader asyncImageLoader =
new
AsyncImageLoader();
private
AsyncImageLoader3 asyncImageLoader3 =
new
AsyncImageLoader3();
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
loadImage2(
"http://www.chinatelecom.com.cn/images/logo_new.gif"
, R.id.image1);
loadImage2(
"http://www.baidu.com/img/baidu_logo.gif"
, R.id.image2);
loadImage2(
"http://cache.soso.com/30d/img/web/logo.gif"
, R.id.image3);
loadImage2(
"http://www.baidu.com/img/baidu_logo.gif"
, R.id.image4);
loadImage2(
"http://cache.soso.com/30d/img/web/logo.gif"
, R.id.image5);
}
@Override
protected
void
onDestroy() {
executorService.shutdown();
super
.onDestroy();
}
private
void
loadImage(
final
String url,
final
int
id) {
handler.post(
new
Runnable() {
public
void
run() {
Drawable drawable =
null
;
try
{
drawable = Drawable.createFromStream(
new
URL(url).openStream(),
"image.png"
);
}
catch
(IOException e) {
}
((ImageView) LazyLoadImageActivity.
this
.findViewById(id)).setImageDrawable(drawable);
}
});
}
private
void
loadImage2(
final
String url,
final
int
id) {
Thread thread =
new
Thread(){
@Override
public
void
run() {
Drawable drawable =
null
;
try
{
drawable = Drawable.createFromStream(
new
URL(url).openStream(),
"image.png"
);
}
catch
(IOException e) {
}
Message message= handler2.obtainMessage() ;
message.arg1 = id;
message.obj = drawable;
handler2.sendMessage(message);
}
};
thread.start();
thread =
null
;
}
private
void
loadImage3(
final
String url,
final
int
id) {
executorService.submit(
new
Runnable() {
public
void
run() {
try
{
final
Drawable drawable = Drawable.createFromStream(
new
URL(url).openStream(),
"image.png"
);
handler.post(
new
Runnable() {
public
void
run() {
((ImageView) LazyLoadImageActivity.
this
.findViewById(id)).setImageDrawable(drawable);
}
});
}
catch
(Exception e) {
throw
new
RuntimeException(e);
}
}
});
}
private
void
loadImage4(
final
String url,
final
int
id) {
Drawable cacheImage = asyncImageLoader.loadDrawable(url,
new
AsyncImageLoader.ImageCallback() {
public
void
imageLoaded(Drawable imageDrawable) {
((ImageView) findViewById(id)).setImageDrawable(imageDrawable);
}
});
if
(cacheImage!=
null
){
((ImageView) findViewById(id)).setImageDrawable(cacheImage);
}
}
private
void
loadImage5(
final
String url,
final
int
id) {
Drawable cacheImage = asyncImageLoader3.loadDrawable(url,
new
AsyncImageLoader3.ImageCallback() {
public
void
imageLoaded(Drawable imageDrawable) {
((ImageView) findViewById(id)).setImageDrawable(imageDrawable);
}
});
if
(cacheImage!=
null
){
((ImageView) findViewById(id)).setImageDrawable(cacheImage);
}
}
}