2014-09-11 2 views
0

내 서버에서 이미지를 다운로드 할 때 라이브러리를 사용하려고합니다. 내 활동에서 항목을 동적으로 추가 한 다음 런타임에 이미지 교환을 실현했습니다. 다음은 Library를 사용하여 ImageView에서 비트 맵을 설정하는 방법 Volley

은 사진을 얻을 수있는 시도의 코드입니다 :

public void updateThumbnails(ArrayList<Book> arrBook,ArrayList<View> arrView){ 
if(arrBook.size()<= 0){ 
    return; 
} 
if(arrView.size() <= 0){ 
    return; 
} 
int intBooks = arrView.size(); 
ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 
for(int intIndex = 0; intIndex < intBooks; intIndex++){ 
    View _view = arrView.get(intIndex); 
    final View _viewLoader = _view; 
    imageLoader.get(Const.START_REQUEST_BOOK_IMAGE + arrBook.get(intIndex).getId().toString() + ".jpg", new ImageLoader.ImageListener() { 
     @Override 
     public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b) { 
      ImageView imgBook = (ImageView) _viewLoader.findViewById(R.id.img_book); 
      animationChangeImage(imageContainer.getBitmap(),imgBook); 
     } 

     @Override 
     public void onErrorResponse(VolleyError volleyError) { 

     } 
    }); 
    TextView txtTitleBook = (TextView) _view.findViewById(R.id.name_book); 
    txtTitleBook.setVisibility(View.INVISIBLE); 
} 

}

답변

0

당신은 반환 된 비트 맵 (imageContainer.getBitmap())는 앞서가는 그것을 할당하기 전에 null이 아님을 확인해야합니다. 오류 또는 null 비트 맵이 있는지 확인하려면 로그 인쇄를 시도하고 추가하십시오. 이는 잘못된 요청 또는 서버 오류를 수행하고 있거나 비트 맵을 성공적으로 수신 한 경우 오류가 animationChangeImage 메소드에있는 것일 수 있습니다.

0

당신이 ImageRequest 클래스를 사용하려고 했습니까? 예를 들어 :

ImageRequest irq = new ImageRequest(imgUrl, new Response.Listener<Bitmap>() { 

    @Override 
    public void onResponse(Bitmap response) { 
     imView.setImageBitmap(response); 

    } 
}, 0, 0, null, null); 
관련 문제