2012-01-10 3 views
0

나는 안드로이드 위젯을 처음 사용하고 있는데, 더 많은 이미지를 사용하고있는 위젯을 개발 중입니다. 완벽하게 실행되지만 때때로 오류가 발생합니다. Failed Binder Transaction, 문제는 remoteviews에서 알 수 있습니다. 안드로이드 위젯에서 remoteviews 처리하는 방법?안드로이드 위젯의 리모트 뷰 처리하기

답변

2

이것은 RemoteView에 대한 모든 변경 사항이 직렬화되어 발생합니다 (예 : setInt 및 setImageViewBitmap). 비트 맵은 또한 내부 번들로 직렬화됩니다. 불행히도이 번들은 크기 제한이 매우 작습니다.

비트 맵의 ​​크기를 줄 였는지 확인하십시오. 다음 코드를 참조하십시오.

public static Bitmap scaleDownBitmap(Bitmap photo, int newHeight, Context context) { 

final float densityMultiplier = context.getResources().getDisplayMetrics().density;   

int h= (int) (newHeight*densityMultiplier); 
int w= (int) (h * photo.getWidth()/((double) photo.getHeight())); 

photo=Bitmap.createScaledBitmap(photo, w, h, true); 

return photo; 
} 

이 newHeight은 당신의 위젯을 사용 (이 화면에해야 모든 사각형을 위해 ~ 100) 작은해야하고, 문제가 해결 될 것입니다 :)

관련 문제