Eby*_*Eby 115 android bitmap widget
有人能告诉我粘合剂交易失败的原因吗?我可以在logcat中看到此错误消息.我试图在一个小部件中动态放置一个位图时收到此错误...
Gal*_*e33 90
这是因为对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;
}
Run Code Online (Sandbox Code Playgroud)
选择newHeight足够小(对于它应该在屏幕上占据的每个方格约为100)并将其用于您的小部件,您的问题将得到解决:)
小智 62
您可以将位图压缩为字节数组,然后在另一个活动中将其解压缩,如下所示.
压缩!!
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
setresult.putExtra("BMP",bytes);
Run Code Online (Sandbox Code Playgroud)
解压!
byte[] bytes = data.getByteArrayExtra("BMP");
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110483 次 |
| 最近记录: |