앱 만들기/안드로이드

안드로이드 비트맵 로딩하기 - Glide 사용하기(3)

나도 처음이야 2020. 5. 18.

 

지난 시간들에서 우린 Glide 라이브러리를 사용하여

ImageView 의 고용량 이미지 및 GIF 이미지를 로딩하는 방법을 배웠다.

이번 시간에는, 비트맵을 Glide 로 로딩하는 방법을 살펴보자.

 

코드는 간단하다.

public MyPlane(ScreenConfig screenConfig , Context _context ){

   
mScreenConfig = screenConfig;
   
//아군유닛 크기 조정을 위해서 가상사이즈를 대입하여 실제크기를 구해옴.
   
mWidth = screenConfig.getX(MYPLAN_WIDTH);
   
mHeight = screenConfig.getY(MYPLAN_HEIGHT);
   
context = _context;

   
Glide.with(context).asBitmap().load(R.drawable.plane)
            .apply(
new RequestOptions().override(mScreenConfig.getX(MYPLAN_WIDTH), mScreenConfig.getY(MYPLAN_HEIGHT)))
            .listener(
new RequestListener<Bitmap>() {
               
@Override
               
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
                   
return false;
               
}

               
@Override
               
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
                   
// resource is your loaded Bitmap
                    mBitmap = resource
;
                    return true;
               
}
            }).submit()
;

 

load() 함수 인자값으로 이미지 리소스를 적어준다.

override() 인자값으로는 리사이징 될 X,Y 축 크기를 적어준다.

즉, 메모리 효율을 위해서 override() 함수로 사이즈를 줄여가져 오는 것이다.

 

Bitmap 이미지를 로드 하는데 성공했다면,

onResourceReady() 함수의 resource 매개변수 값으로 Bitmap 변수를 받아오면 된다.

실패했다면,

onLoadFailed() 콜백이 호출되기에, 

이곳에 Toast 등 다양한 에러 메시지를 띄워주면 된다.

그리고, 메모리 해제는 Glide 에서 자동으로 해주기에 신경쓰지 않아도 된다.

기존 방식에 비해 매우 편리하다.

 

이렇게 작업된 내역은 필자가 현재 개발 중인 게임에 적용이 되고 있다. 

감사합니다. ^^

 

 

반응형

댓글