2017-02-04 3 views
-2

내 알림에 Arwork-Image를로드하려고합니다 (MediaStyle).글라이드와 동기식으로 비트 맵을로드하려면 어떻게해야합니까?

java.lang.IllegalArgumentException: You must call this method on a background thread

public Bitmap getAlbumArtwork(long albumID, int Height, int Width) { 
    try { 
     return Glide.with(mContext).load(getAlbumArtworkUri(albumID)).asBitmap().error(R.drawable.standardartwork).into(Width, Height).get(); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } catch (ExecutionException e) { 
     e.printStackTrace(); 
    } 

    return null; 
} 

가 나는 또한, 예를 라이브러리를 변경 기꺼이 : 다음 코드를 사용하여

오류와 함께 내 응용 프로그램 충돌 필요한 경우 UniversalImageLoader!

는 또한

나는 ...이 통지는 서비스에서 생성되는 알림 이미지를로드하는 데이 방법을 사용하기 때문에 UI가 중단되지 않습니다! 알림 ImageView의 ID가 없으므로 다른 방법으로 설정하는 방법을 모르겠습니다. 또한 MediaSession의 MediaMetaData에 추가하려면 Bitmap이 필요합니다. 당신이 메인 스레드 (일명 UI 스레드)에서 네트워크 이미지를 검색하려는 않은 경우

+0

. 비록 당신은 그것을 피해야 만합니다. –

+0

답변이 도움이 되었습니까? – OBX

+0

아니요, 이전 버전으로 돌아 왔습니다 –

답변

0

How can I load a Bitmap syncronously with Glide?

은, 그건 나쁜 방법이 될 것입니다. 상당한 시간이 소요되는 작업은 별도의 스레드에서 실행해야하며, 더 나쁜 경우에는 ANR (Application Not Responding) 상태로 이어질 수도 있습니다.

당신은 글라이드에서 Bitmap을해야하는 경우 비동기 방식으로 완벽 검색 할 수 있습니다, 이것은 당신이 그것을하는 방법이다 : 당신이 UI 스레드에서 실행하려면이 방법을 강제 할 수

Glide.with(mContext) 
      .load("http://example.com/imageurl") 
      .asBitmap() 
      .into(new SimpleTarget<Bitmap>() { 
       @Override 
       public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
        // you can do something with loaded bitmap here 

        // ..... 

        holder.mImageView.setImageBitmap(resource); 
       } 
      }); 
+0

제발 내 정보를 좀 봐주세요! –

관련 문제