模拟器2.2上的活页夹事务失败,但4.1上没有

时间:2012-11-25 18:10:32

标签: android android-widget imageview

我正在从SD卡中将图像视图设置为图像。这在android模拟器4.1上顺利运行,但是在Android版本2.2的模拟器上它返回一个失败的活页夹事务。我发现这很奇怪,无法弄清楚问题是什么。图像图像按以下方式设置:

               try{
                    String pathName = Environment.getExternalStorageDirectory().getPath() + "/Drop Insight/" + c.getString(iID) + ".png";
                    File path = new File(pathName);
                    if(path.exists()){
                        BitmapFactory.Options options = new BitmapFactory.Options();
                        Bitmap bm = BitmapFactory.decodeFile(pathName, options);
                        remoteView.setImageViewBitmap(R.id.ivwidgetimage, bm);
                    }
                    else{
                        remoteView.setImageViewResource(R.id.ivwidgetimage, R.drawable.defaultpic);
                    }
                }
                catch (Exception e) {
                    Log.e(DEBUG_TAG, "Failed", e);
                }

我已经尝试过options.inSampleSize = 4;但这并没有解决问题。

感谢您提供任何解释和帮助。

11-25 19:22:04.992: D/dalvikvm(59): GC_EXPLICIT freed 3148 objects / 171272 bytes in 107ms
11-25 19:22:05.092: V/MediaProvider(216): /mnt/sdcard volume ID: 318247957
11-25 19:22:05.201: D/dalvikvm(282): GC_EXTERNAL_ALLOC freed 989 objects / 66344 bytes in 59ms
11-25 19:22:05.391: E/JavaBinder(59): !!! FAILED BINDER TRANSACTION !!!
11-25 19:22:05.401: D/dalvikvm(153): GC_EXPLICIT freed 4139 objects / 251136 bytes in 1278ms

1 个答案:

答案 0 :(得分:0)

对于像你这样的代码,这通常意味着位图太大了。每个基于Binder的IPC交易限制为1MB。我不知道这个限制是在Android 4.x中提出的,尽管这肯定是可能的。

因此,请确保setImageViewBitmap()使用足够小的Bitmap