隨筆-1  評論-68  文章-98  trackbacks-0

          在主屏的設置墻紙界面,由于墻紙圖片太大,瀏覽墻紙大圖的預覽圖時,產生了OOM錯誤。

          異常提示:

          E/InputManagerService(  177): Got RemoteException sending setActive(false) notification
          E/InputManagerService(  177): android.os.DeadObjectException
          E/InputManagerService(  177):   at android.os.BinderProxy.transact(Native Method)
          E/InputManagerService(  177):   at com.android.internal.view.IInputMethodClient$Stub$Proxy.setActive(IInputMethodClient.java:158)
          E/InputManagerService(  177):   at com.android.server.InputMethodManagerService.unbindCurrentInputLocked(InputMethodManagerService.java:554)
          E/InputManagerService(  177):   at com.android.server.InputMethodManagerService.startInputLocked(InputMethodManagerService.java:616)
          E/InputManagerService(  177):   at com.android.server.InputMethodManagerService.startInput(InputMethodManagerService.java:700)
          E/InputManagerService(  177):   at com.android.internal.view.IInputMethodManager$Stub.onTransact(IInputMethodManager.java:113)
          E/InputManagerService(  177):   at com.android.server.InputMethodManagerService.onTransact(InputMethodManagerService.java:466)
          E/InputManagerService(  177):   at android.os.Binder.execTransact(Binder.java:276)
          E/InputManagerService(  177):   at dalvik.system.NativeStart.run(Native Method)

          代碼部分:

          public class com.android.launcher.WallpaperChooser


              @Override
              public void onCreate(Bundle icicle) {
                  super.onCreate(icicle);
                  requestWindowFeature(Window.FEATURE_NO_TITLE);

                  findWallpapers();

                  setContentView(R.layout.wallpaper_chooser);

                  mOptions = new BitmapFactory.Options();
                  mOptions.inDither = false;
                  mOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
                  mOptions.inSampleSize = 2;// fix it
          ... ...

              public void onItemSelected(AdapterView parent, View v, int position, long id) {
                  final ImageView view = mImageView;
                  Bitmap b = BitmapFactory.decodeResource(getResources(), IMAGE_IDS[position], mOptions);// here throw the OOMError

          ... ...

          解決方法:

          1、調整merory useage

          mOptions.inSampleSize = 2;//return an image that is 1/2 the width/height of the original, and 1/4 the number of pixels.

          2、調整bitmap size

          bitmap = Bitmap.createScaledBitmap(bitmap, 100, 150, false);

          3、調整temp storage

          mOptions.inSampleSize = new byte[100 * 1024];

          參考:http://stackoverflow.com/questions/477572/android-strange-out-of-memory-issue

           

          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/netpirate/archive/2009/06/10/4257854.aspx

          posted on 2009-08-29 23:28 Xu Jianxiang 閱讀(1481) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 新津县| 霞浦县| 桂林市| 潼关县| 绩溪县| 双桥区| 宜良县| 乌海市| 鄂州市| 南雄市| 石泉县| 通海县| 堆龙德庆县| 东光县| 剑阁县| 谢通门县| 玛纳斯县| 通海县| 新蔡县| 滕州市| 土默特左旗| 泾阳县| 美姑县| 金乡县| 景泰县| 新乡市| 手游| 绵竹市| 黑山县| 凤庆县| 余姚市| 京山县| 黎平县| 呼伦贝尔市| 鹿邑县| 册亨县| 得荣县| 红原县| 田阳县| 海晏县| 江华|