import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import com.nostra13.example.universalimageloader.Constants.Extra;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
/**
* 画廊异步加载组件
*/
@SuppressWarnings("deprecation")
public class ImageGalleryActivity extends BaseActivity {
String[] imageUrls;
DisplayImageOptions options;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_image_gallery);
Bundle bundle = getIntent().getExtras();
imageUrls = bundle.getStringArray(Extra.IMAGES);
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub)// 正在加载图片
.showImageForEmptyUri(R.drawable.ic_empty)//uri为空的时候显示
.showImageOnFail(R.drawable.ic_error)// 加载失败时显示
.cacheInMemory(true)//设置是否先从内存读取
.cacheOnDisc(true)//设置是否先从磁盘读取
.considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
Gallery gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageGalleryAdapter());//添加适配器
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
startImagePagerActivity(position);
}
});
}
private void startImagePagerActivity(int position) {
Intent intent = new Intent(this, ImagePagerActivity.class);
intent.putExtra(Extra.IMAGES, imageUrls);
intent.putExtra(Extra.IMAGE_POSITION, position);
startActivity(intent);
}
private class ImageGalleryAdapter extends BaseAdapter {
@Override
public int getCount() {//返回 “画廊” 的总长度
return imageUrls.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
/**
* 如果不能将convertView(old组件)转化成新组件,就重新创建一个组件
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = (ImageView) convertView;
if (imageView == null) {
//加载新item
imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_gallery_image, parent, false);
}
//添加新任务到队列
imageLoader.displayImage(imageUrls[position], imageView, options);
return imageView;
}
}
}
源文件下载地址:http://pan.baidu.com/s/1bnf6CbX