猿问
在窗口小部件中动态放置位图时,活页夹交易失败
有人可以告诉我
粘结剂交易失败
的原因吗?我可以在logcat中看到此错误消息。尝试在小部件中动态放置位图时遇到此错误...
摇曳的蔷薇
浏览 423
回答 3
3回答
繁星点点滴滴
这是因为对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个正方形)并将其用于小部件,您的问题将得到解决:)
0
0
0
慕码人8056858
您可以将位图压缩为字节数组,然后在另一个活动中将其解压缩,如下所示。压缩!! ByteArrayOutputStream stream = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] bytes = stream.toByteArray(); setresult.putExtra("BMP",bytes);解压!! byte[] bytes = data.getByteArrayExtra("BMP"); Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
0
0
0
随时随地看视频
慕课网APP
相关分类
Android
我要回答