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

          在主屏的設(shè)置墻紙界面,由于墻紙圖片太大,瀏覽墻紙大圖的預(yù)覽圖時,產(chǎn)生了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、調(diào)整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、調(diào)整bitmap size

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

          3、調(diào)整temp storage

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

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

           

          本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/netpirate/archive/2009/06/10/4257854.aspx

          posted on 2009-08-29 23:28 Xu Jianxiang 閱讀(1481) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 柳河县| 武威市| 淮安市| 桦川县| 尖扎县| 郯城县| 叶城县| 咸宁市| 江源县| 嘉兴市| 胶州市| 潮安县| 米易县| 互助| 大名县| 鄂尔多斯市| 和政县| 中超| 古浪县| 织金县| 湛江市| 牙克石市| 乌恰县| 红原县| 逊克县| 华亭县| 分宜县| 景宁| 大关县| 静乐县| 沂南县| 元阳县| 武川县| 广汉市| 额敏县| 江阴市| 弋阳县| 茌平县| 利川市| 济南市| 唐河县|