본문 바로가기
Programing/android

[android studio] Drawable을 Bitmap으로, Bitmap을 Drawable로 변경하기

by Benedictus711 2021. 10. 24.
728x90
Drawable을 Bitmap으로 변경
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.[drawable명칭]);

또는,

Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();

 

Bitmap을 Drawable로 변경
Drawable drawable = new BitmapDrawable(bitmap);

 

Drawable을 Bitmap으로 변경한 뒤 canvas에 넣거나 수정할 경우
[Immutable bitmap passed to Canvas constructor]라는 예외 error가 발생하는 경우가 있다.

이런경우, 아래와 같이 bitmap을 복사한 뒤 사용하면 error를 피해갈 수 있다.

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.[drawable명칭]);
Bitmap copybitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

 

복사한 copybitmap을 사용하면 된다.

728x90

댓글