/**
* ViewPager的适配器
* Created by lezg on 2014/7/30.
*/
public class ViewPagerAdapter extends PagerAdapter {
private Context mContext;
private SparseArray<ImageView> imageViews = new SparseArray<ImageView>();
private ExecutorService threadPools = Executors.newFixedThreadPool(3);
public ViewPagerAdapter(Context context) {
this.mContext = context;
}
@Override
public int getCount() {
return AppHelper.imagesId.length;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView;
if (imageViews.get(position) != null) {
imageView = imageViews.get(position);
} else {
View view = LayoutInflater.from(mContext).inflate(R.layout.listview_item, container, false);
imageView = (ImageView) view.findViewById(R.id.image);
imageViews.put(position, imageView);
setImage(imageView, position);
}
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
ImageView iv = (ImageView) object;
container.removeView(iv);
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
private void setImage(final ImageView imageView, final int position) {
final Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bitmap bp = (Bitmap) msg.obj;
imageView.setImageBitmap(bp);
}
};
threadPools.submit(new Runnable() {
@Override
public void run() {
int imageId = AppHelper.imagesId[position];
Bitmap bitmap = AppHelper.decodeSampleBitmapFromResource(mContext.getResources(), imageId, 205, 153);
Bitmap withReflectedBitmap = AppHelper.createReflectedImage(bitmap, false);
Message msg = new Message();
msg.obj = withReflectedBitmap;
msg.what = 1;
myHandler.sendMessage(msg);
if (bitmap != null) {
bitmap.recycle();
}
}
});
}
}
Android ViewPager实现相册
最新推荐文章于 2024-05-15 10:54:58 发布