2017-12-15 1 views
0

Android N의 View Pager에서 이미지 세트를로드하려고 할 때 문제가 발생합니다 (Samsung S6 확인).너무 큰 비트 맵을 그리는 캔버스

java.lang.RuntimeException : Canvas : 너무 큰 (132710400bytes) 비트 맵을 그리려고합니다.

이미지 크기는 960 * 720 크기 64 k는,보기 호출기 수가 4

가 지금은 정상 "그릴 수"폴더에있는 모든 이미지를 배치입니다. 나는 모든 이미지를 "drawable-xxhdpi"로 바꾸려고 노력했지만 문제는 여전히 존재합니다.

누구든지 문제를 찾을 수 있습니까?

+0

이 문제가 해결됩니까? – Amarnath

답변

1

노가트는 최적화면에서 상당히 똑똑합니다. 어떤 드로어 디렉토리에 넣든 관계 없습니다. 이미지가 앱의 유창한 작업에 적합한 지 여부를 감지합니다. 그리고 만약 그렇지 않다면이 예외를 생성 할 것입니다.

솔루션 :

  1. 사용 Final android Resizer 모든 dpi의에 대한 드로어 블을 생성합니다.
  2. Glide 라이브러리를 사용하면 비트 맵을 효율적으로로드 할 수 있습니다 (비트 맵 캐싱 및 비트 맵 풀링 지원).
  3. 이미지가 단색 (예 : 아이콘) 인 경우 .SVG 또는 .PSD 파일에서 벡터 드로어 블을 생성 할 수 있습니다. 자세히 알아보기 here.

행운을 빕니다 : D

관련 문제