2016-09-29 2 views
0

내가보기의 캐싱 비트 맵을 얻기 위해 노력 코드는 다음과 같다 :Android에서 setDrawingCacheQuality가 작동하지 않습니까?

View cachingView = getActivity().getWindow().getDecorView().getRootView(); 
cachingView.setDrawingCacheEnabled(true); 
cachingView.setLayerType(View.LAYER_TYPE_NONE,null); 
cachingView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW); 
Bitmap bitmap = Bitmap.createBitmap(cachingView.getDrawingCache()); 
LogHelper.i("bitmap size: "+bitmap.getByteCount()); 
LogHelper.i("bitmap size: "+ BitmapCompat.getAllocationByteCount(bitmap)); 

인쇄 결과는 다음과 같습니다

비트 맵의 ​​크기 : 14,745,600

비트 맵의 ​​크기 : 14,745,600 분명히

, 너무 큽니다. setDrawingCacheQuality의 다른 매개 변수가 변경되었지만 결과는 같습니다.

어떻게하면 더 작은 비트 맵을 얻을 수 있습니까?

감사

+0

어떤 신체가이 문제를 만날 수 있습니까? 아니면 더 작은 백그라운드 캐시를 얻을 수있는 다른 방법이 있습니까? – user1072605

답변

1

여기에 품질은 JPEG를 작성할 때와 같은 압축의 품질이 아닙니다. 투명 필름 용 알파 블렌딩의 품질. 그래서 그것은 효과가 있습니다. 단지 당신이 생각한 것을하지 않습니다.

(메모리의 비트 맵은 압축되지 않으므로 디스크의 메모리에 쓰는 데 사용하는 압축 품질이 중요하지 않으므로 동일한 크기 일 경우 같은 양의 메모리를 사용합니다).