我是android小部件的新手,目前我正在开发小部件,我正在使用更多图像,它运行完美但有时会抛出错误Failed Binder Transaction
,
我知道问题出在remoteviews上,有人能告诉我如何在android小部件中处理远程视图吗?
答案 0 :(得分:2)
这是因为对RemoteViews的所有更改都是序列化的(例如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个)并将它用于你的小部件,你的问题将会解决:)