Android滑动图像应用程序内存不足错误
我正在开发一个简单的android应用程序,它有一个带有滑动图像的Android滑动图像应用程序内存不足错误,android,android-viewpager,swipe,Android,Android Viewpager,Swipe,我正在开发一个简单的android应用程序,它有一个带有滑动图像的ViewPager。我有一个包含12个图像的静态应用程序。当我刷卡时,应用程序在第四张图片后崩溃 如何理解stacktrace并解决此问题 java.lang.OutOfMemoryError 05-2421:37:25.718:E/AndroidRuntime(551): 在android.graphics.BitmapFactory.NativeDecodeset(本机方法) 05-2421:37:25.718:E/Andro
ViewPager
。我有一个包含12个图像的静态应用程序。当我刷卡时,应用程序在第四张图片后崩溃
如何理解stacktrace并解决此问题
java.lang.OutOfMemoryError 05-2421:37:25.718:E/AndroidRuntime(551):
在android.graphics.BitmapFactory.NativeDecodeset(本机方法)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:483)
05-2421:37:25.718:E/AndroidRuntime(551):在
decodeResourceStream(BitmapFactory.java:351)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.graphics.drawable.drawable.createFromResourceStream(drawable.java:773)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.content.res.Resources.loadDrawable(Resources.java:1935)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.content.res.Resources.getDrawable(Resources.java:664)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.widget.ImageView.resolveUri(ImageView.java:542)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.widget.ImageView.setImageResource(ImageView.java:315)05-24
21:37:25.718:E/AndroidRuntime(551):在
com.sqisland.android.swipe\u image\u viewer.MainActivity$ImagePagerAdapter.instanceItem(MainActivity.java:72)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.support.v4.view.ViewPager.addNewItem(ViewPager.java:692)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.support.v4.view.ViewPager.populate(ViewPager.java:875)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.support.v4.view.ViewPager.populate(ViewPager.java:772)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.support.v4.view.ViewPager.completeScroll(ViewPager.java:1539)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.support.v4.view.ViewPager.computeScroll(ViewPager.java:1422)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.view.ViewGroup.drawChild(ViewGroup.java:2729)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.view.ViewGroup.drawChild(ViewGroup.java:2885)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.view.ViewGroup.drawChild(ViewGroup.java:2885)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.view.view.draw(view.java:10981)05-2421:37:25.718:
E/AndroidRuntime(551):在
android.widget.FrameLayout.draw(FrameLayout.java:450)05-24
21:37:25.718:E/AndroidRuntime(551):在
com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2126)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.view.ViewRootImpl.draw(ViewRootImpl.java:2026)05-24
21:37:25.718:E/AndroidRuntime(551):在
performTraversals(ViewRootImpl.java:1634)
05-2421:37:25.718:E/AndroidRuntime(551):在
android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.os.Handler.dispatchMessage(Handler.java:99)05-24
21:37:25.718:E/AndroidRuntime(551):在
android.os.Looper.loop(Looper.java:137)05-2421:37:25.718:
E/AndroidRuntime(551):在
android.app.ActivityThread.main(ActivityThread.java:4424)05-24
21:37:25.718:E/AndroidRuntime(551):在
java.lang.reflect.Method.Invokenactive(本机方法)05-24
21:37:25.718:E/AndroidRuntime(551):在
java.lang.reflect.Method.invoke(Method.java:511)05-24 21:37:25.718:
E/AndroidRuntime(551):在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-2421:37:25.718:E/AndroidRuntime(551):在
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)05-24
21:37:25.718:E/AndroidRuntime(551):在
dalvik.system.NativeStart.main(本机方法)
看起来您使用的图像尺寸非常大,设备无法处理。尝试使用一些较小的尺寸ViewPager适配器一次加载所有图像,这就是出现错误的原因。那么,实际原因是什么: 1.您的图像大小非常大 2.您没有正确使用图像资源。尝试将不同大小的图像放在不同的文件夹中,如ldpi、hdpi、xdpi文件夹。 尝试使用上述技巧。 如果仍然出现错误,可以执行以下操作:
我把FragmentPagerAdapter改成了FragmentStatePagerAdapter。然而,滑动运动相当缓慢。似乎它暂时解决了这个问题
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a
* {@link android.support.v4.app.FragmentPagerAdapter} derivative, which
* will keep every loaded fragment in memory. If this becomes too memory
* intensive, it may be best to switch to a
* {@link android.support.v4.app.FragmentStatePagerAdapter}.
*/
此处提供详细教程您是使用片段还是活动实现viewpager??给我们看看你的代码部分。你可以在这里找到答案。希望这可以正常工作。我正在使用一个活动。我尝试过减小大多数图像的大小,但仍然崩溃。。
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a
* {@link android.support.v4.app.FragmentPagerAdapter} derivative, which
* will keep every loaded fragment in memory. If this becomes too memory
* intensive, it may be best to switch to a
* {@link android.support.v4.app.FragmentStatePagerAdapter}.
*/