티스토리 뷰
문제: 특정 단말기에서 고해상도의 Bitmap을 ImageView에 설정하면 보이지 않는 현상.
원인:
로그캣에 아래와 같은 로그를 발견할 수 있다...
설정하려는 비트맵의 크기가 텍스쳐에 업로드할 수 있는것에 비해 너무 크다는 이야기..
W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (4160x2340, max=4096x4096)
다시말해 안드로이드의 하드웨어 가속 시 기본적으로 GL_MAX_TEXTURE_SIZE 만큼만 rendering을 할 수 있기 때문에 이 사이즈를 넘어가는 비트맵은 정상적으로 처리가 되지 않는다.
이다.
대책:
1. 하드웨어 가속끄기
수정방법: AndroidManifest.xml 에서 해당 Activity의 속성에 아래 값을 추가.
android:hardwareAccelerated="false"
하드웨어 가속을 사용해야 하는 경우라면 2번으로 수정한다.
2. 비트맵리사이징.
리사이징 메소드 만들어 봤다..
Bitmap resizeBitmap(Bitmap bitmap)
{
if(bitmap.getWidth() > GLES30.GL_MAX_TEXTURE_SIZE ||
bitmap.getHeight()> GLES30.GL_MAX_TEXTURE_SIZE)
{
float aspect_ratio = ((float)bitmap.getHeight())/((float)bitmap.getWidth());
int resizedWidth = (int)(GLES30.GL_MAX_TEXTURE_SIZE*0.9);
int resizedHeight = (int)(GLES30.GL_MAX_TEXTURE_SIZE*0.9*aspect_ratio);
return bitmap.createScaledBitmap(bitmap, resizedWidth, resizedHeight, false);
}
return bitmap;
}
그래픽 라이브러리의 버전은 아래 사이트에서 확인가능합니다.
https://developer.android.com/guide/topics/graphics/opengl.html
'안드로이드' 카테고리의 다른 글
안드로이드스튜디오 - AVD HAXM오류 수정 (0) | 2018.10.13 |
---|---|
안드로이드 오레오버전(8.0) Notification(알림) 오류 (1) | 2018.09.17 |
[안드로이드 스튜디오]MultiDexApplication사용하기 / The number of method references in a .dex file cannot exceed 64K. (0) | 2017.05.12 |
[안드로이드스튜디오]Cannot Resolve Symbol 'R' 오류 수정하기. (0) | 2017.05.11 |
안드로이드 스튜디오 설정 오류 (0) | 2017.05.10 |
- Total
- Today
- Yesterday
- OracleDB
- 비주얼 스튜디오 코드 설치하기 #visual studio code설치하기
- mariadb
- Device File Explorer
- MYSQL
- 데이터 베이스 연결하기
- 화면 자동 갱신
- httpport
- 안드로이드 스튜디오 3.2.1
- C++ 프로그램 개발 툴
- 주피터노트북 #시작위치 변경
- AVD
- DateBbase 오류
- workbench #EER Diagram #한글깨짐 #한글오류
- 비주얼 스튜디오 코드에서 html파일 실행하기
- IntelliJ
- 아나콘다 #미니콘다 #설치하기 #가상환경 # 가상환경 activate # 패키지 설치하기
- VSCode #php디버깅 #Xdebug설정 #Visual Studio Code 디버깅
- inellij community
- python
- JSP 데이터베이스 연동 시 에러
- 라이브러리 오류
- 스프링부트
- JDK
- sethttpport
- 아나콘다 프롬프트 #파이썬 모듈 삭제하기 #conda remove #pip uninstall
- 자바
- datatypeconverter
- jsp
- DateBbase에러
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |