Canvas: trying to use a recycled bitmap 처리

(전재)http://zwnjava.iteye.com/blog/1901880 
Android 개발 을 할 때 ListView 나 GridView 에 많은 그림 을 불 러 와 야 합 니 다. 너무 많은 그림 을 불 러 와 OutOf Memory 오 류 를 일 으 키 지 않도록 그림 캐 시 목록 을 설정 하 였 습 니 다. Map> imageCache , 이 를 유지 하고 그림 을 일정 수량 으로 불 러 올 때 이전에 그림 을 불 러 온 bitmap 를 수 동 으로 회수 합 니 다. 이 때 다음 과 같은 오류 가 발생 했 습 니 다.
   
해결 방법 (ImageView 를 계승 하여 onDraw () 방법 을 다시 쓰 고 이상 을 포착):
onDraw () 를 다시 쓰 는 방법 에 서 는 아무것도 하지 않 았 습 니 다. 이상 한 캡 처 만 추가 하면 위의 오 류 를 포착 할 수 있 습 니 다.   
public class MyImageView extends ImageView {

	public MyImageView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public MyImageView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public MyImageView(Context context) {
		super(context);
	}

	@Override
	protected void onDraw(Canvas canvas) {
		try {
			super.onDraw(canvas);
		} catch (Exception e) {
			Log.i(MyImageView.class.getSimpleName(), "Catch Canvas: trying to use a recycled bitmap");
		}
	}

}

좋은 웹페이지 즐겨찾기