6

사용자 정의보기에서 Canvas.drawBitmap을 2048px보다 넓은 소스 비트 맵과 함께 사용하고 있습니다. 물론 하드웨어 가속을 사용할 때 LogCat이 "W/OpenGLRenderer (4968) : drawBitmap이 호출 될 때마다 텍스처에 업로드하기에 너무 큰 비트 맵"을 분출하여 문제가 발생합니다.왜 내 뷰 중 하나를 소프트웨어로 렌더링 할 수 없습니까?

그래서이 문제를 해결하기 위해 setLayerType(View.LAYER_TYPE_SOFTWARE, null)을 호출하려고했습니다. 유일한 문제는 그것이 도움이되지 않는다는 것입니다. 내 앱을 실행하려고하면 LogCat에서 경고를 보내고 아무 것도 그려지지 않게됩니다.

이유가 무엇인지 이해할 수 없습니다. This article on the Android site 명확하게 상태 :

당신은 다음 코드를 사용하여 런타임에 개별 뷰에 대한 하드웨어 가속을 해제 할 수 있습니다

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

내가 잘못 뭔가가 있나요? Android가 setLayerType 호출을 존중하지 않는 이유는 무엇입니까?


은 [경우에 중요한 : 나는 안드로이드 3.2을 실행하는 삼성 갤럭시 탭 10.1에 내 테스트를 수행하고있어 먼저 비트 맵의 ​​크기를 조정

+0

canvas.isHardwareAccelerated()를 확인하십시오. 보기와 다를 수 있습니다. – imort

답변

0

시도합니다. createBitmap을 사용하십시오.