随笔-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 阅读(1475) 评论(0)  编辑  收藏 所属分类: Android

只有注册用户登录后才能发表评论。


网站导航: