2012-01-10 22 views
0

私はアンドロイドウィジェットを初めて使いました。現在、私はより多くの画像を使用しているウィジェットを開発中ですが、完璧に動作しますが、時にはエラーをスローします。Failed Binder Transaction、 問題は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)小さく、ウィジェットのためにそれを使用し、あなたの問題が解決されます:)

をすべきです
関連する問題