隨筆-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 閱讀(333) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 新巴尔虎左旗| 泗水县| 高陵县| 内江市| 嵊泗县| 同心县| 铜鼓县| 神农架林区| 卓资县| 松江区| 梁平县| 南丹县| 荥阳市| 东安县| 娄底市| 萍乡市| 德清县| 娄烦县| 建水县| 福建省| 抚远县| 青海省| 崇仁县| 丰宁| 济源市| 四子王旗| 社会| 渝北区| 沙河市| 祁门县| 呈贡县| 锡林浩特市| 奉贤区| 监利县| 汕头市| 昌都县| 乃东县| 西乡县| 凤冈县| 保山市| 汉源县|