2

Я пытаюсь показать слайд-шоу из изображений более 50 изображений. Всякий раз, когда я запускаю его, я получаю OutOfMemoryError. Мой код:Показать слайд-шоу - Android OutOfMemoryError

public class SlideshowActivity extends Activity { 

private ViewFlipper myViewFlipper; 
int[] image = { R.drawable.one_facebook, R.drawable.two_facebook, 
     R.drawable.three_facebook, R.drawable.four_facebook, R.drawable.five_facebook, 
     R.drawable.six_facebook, R.drawable.seven_facebook, R.drawable.eight_facebook, 
     R.drawable.nine_facebook, R.drawable.ten_facebook, R.drawable.eleven_facebook, 
     R.drawable.onetwo_facebook, etc. }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_slideshow); 
    myViewFlipper = (ViewFlipper) findViewById(R.id.myflipper); 

    for (int i = 0; i < image.length; i++) { 
     ImageView imageView = new ImageView(SlideshowActivity.this); 
     imageView.setImageResource(image[i]); 
     myViewFlipper.addView(imageView); 

    } 
    myViewFlipper.setAutoStart(true); 
    myViewFlipper.setFlipInterval(1000); 
    myViewFlipper.startFlipping(); 
} 

Мой LogCat показывает:

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.applications.codegeek.slideshow, PID: 10126 java.lang.OutOfMemoryError: Failed to allocate a 52920012 byte allocation with 4194304 free bytes and 31MB until OOM at dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620) at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455) at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1155) at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:720) at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571) at android.content.res.Resources.getDrawable(Resources.java:771) at android.content.Context.getDrawable(Context.java:525) at android.widget.ImageView.resolveUri(ImageView.java:856) at android.widget.ImageView.setImageResource(ImageView.java:448) at com.applications.codegeek.slideshow.SlideshowActivity$override.onCreate(SlideshowActivity.java:29) at com.applications.codegeek.slideshow.SlideshowActivity$override.access$dispatch(SlideshowActivity.java) at com.applications.codegeek.slideshow.SlideshowActivity.onCreate(SlideshowActivity.java:0) at android.app.Activity.performCreate(Activity.java:6679) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4519) at android.app.ActivityThread.-wrap19(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1483) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Любая помощь будет оценен по достоинству! Благодаря!

+1

Почему вы не используете библиотеки загрузчика изображений, такие как glide, picasso и т. Д. –

+0

То, что я нашел в [Glide For Github] (https://github.com/bumptech/glide), было то, что полезно показывать изображения. Возможно, я понял это неправильно. О [picasso] (http://square.github.io/picasso/) Я видел некоторые наглядные примеры об этом, и то, что я получил, это то, что оно полезно для коллажей. Возможно, я понял это неправильно, и если да, тогда, пожалуйста, скажите мне, что это на самом деле. Спасибо! –

ответ

0

Для уменьшения памяти, которую вы можете использовать этот плагин Android Drawable Importer Plugin

И тоже ..

андроида: largeHeap = «истина» в манифесте Это увеличит размер кучи и избежать OutOfMemory

Удачи!

+0

Его все еще не работает. У меня уже было большое значение в моем манифесте, но я преобразовал все мои изображения в ldpi, но он все еще показывает эту ошибку. Пожалуйста, помогите –

+0

попробовать с положить в вашем Gradle dexOptions андроида { compileSdkVersion 25 buildToolsVersion '23 .0.3' dexOptions { preDexLibraries = ложь javaMaxHeapSize "4g" } –

+0

Нет, я все еще получаю ту же самую ошибку. Спасибо за попытку. –

 Смежные вопросы

  • Нет связанных вопросов^_^