最近开发一个功能是用来展示图片的,用的是viewflipper,图片数量未知,
我图片大小是1200x888的,如果一次性全部加载到viewflipper中的话,可
能会报OOM错误,现在的做法是viewflipper只添加一个imageview,每次
滑动的时候去用addview添加到原来的view,并且替换掉,但是一直向右滑
动突然向左滑动的时候它不会显示前面的照片,不知道是什么原因,代码如下:
private void changeView() {
if (null != bitmap && !bitmap.isRecycled()) {
bitmap.recycle();
System.gc();
}
bitmap=BitmapFactory.decodeFile(imgFileList.get((imgPosition)%imgFileList.size()));
ImageView tmpIV = new ImageView(DiseaseDetail.this);
tmpIV.setImageBitmap(bitmap);
viewFlipper1.addView(tmpIV, viewFlipper1.getChildCount(),new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
if (currentImgPosition > imgPosition) {
Animation rOut = AnimationUtils.loadAnimation(this, R.anim.flipper_right_out);
Animation lIn = AnimationUtils.loadAnimation(this, R.anim.flipper_left_in);
viewFlipper1.setInAnimation(lIn);
viewFlipper1.setOutAnimation(rOut);
viewFlipper1.showPrevious();
} else if (currentImgPosition < imgPosition) {
Animation rIn = AnimationUtils.loadAnimation(this, R.anim.flipper_right_in);
Animation lOut = AnimationUtils.loadAnimation(this, R.anim.flipper_left_out);
viewFlipper1.setInAnimation(rIn);
viewFlipper1.setOutAnimation(lOut);
viewFlipper1.showNext();
}