728x90
이미지 크기나 용량이 너무 큰 배경화면 그림을 쓰다보니 처음에는 단순하게 생각해서
android:background=
식으로 썼더니 Error inflating class <unknown> 에러가 나왔다.
그래서 이미지를 화면 크기에 맞춰서 수정을 하여 넣을 수 있도록 코드상에서 아래처럼 처리를 하였다.
//화면크기를 구하기
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
int width = size.x;
int height = size.y;
//배경이미지를 넣을 layout
LinearLayout layout = (LinearLayout)rootview.findViewById(R.id.fragment);
//이미지를 bitmap으로 받음
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg_img);
//bitmap이미지를 layout size에 맞게 크기 수정
Bitmap resize_bitmap = Bitmap.createScaledBitmap(bitmap, width, height, true);
//bitmap 이미지를 배경화면으로 적용
layout.setBackgroundDrawable(new BitmapDrawable(getResources(), resize_bitmap));
해당 방식으로 처리를 하였더니
Failed to allocate a 575710932 byte allocation with 3937642 free bytes and 378MB until OOM
에러가 발생하였다.
이미지자체가 크다보니 조절하여도 에러가 발생하는듯 하였다.
큰 이미지를 처리할 수 있도록 AndroidManifest.xml 파일에 아래 옵션을 추가를 하였다.
android:hardwareAccelerated="false"
android:largeHeap="true"
그래도 소용이 없었다;;;;
결국 이미지를 이미지편집기를 열어 너무큰 이미지를 웹용으로 해상도를 낮추고 크기도 변경하여
크기와 용량 모두 줄인 뒤에 정상적으로 동작하는 것을 확인하였다.
여러방법을 써도 결국 원본이미지의 용량이 너무 큰 이미지는 배경화면으로 안쓰는 것이 맞는거 같다.
앞으로도 적당히 조절하여 써야 하겠다.
728x90
'Programing > android' 카테고리의 다른 글
[android studio] SharedPreferences을 이용한 data 저장하기 (0) | 2021.11.01 |
---|---|
[android studio] Spinner 텍스트 색상, 팝업 텍스트 색상 바꾸기 (0) | 2021.10.30 |
[android studio] 앱 아이콘 만들기 (0) | 2021.10.28 |
[android studio] 버튼에 배경색이 바뀌지 않는 오류 (0) | 2021.10.24 |
[android studio] camera 기능 추가 (0) | 2021.10.24 |
댓글