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