با سلام و احترام
ببخشید من یه مشکلی تو لود تصویر گرفته شده دارم
بعد از اینکه تصویر گرفته میشه و ذخیره میشه با دوباره رفت و برگشت به صفحه نمایش تصویر خطای زیر رو میده
Java.Lang.OutOfMemoryError: Failed to allocate a 65028108 byte allocation with 5651552 free bytes and 5MB until OOM
ممنون میشم راهنمایی کنید
تصویر از کجا گرفته میشه ؟
رفت و برگشت به کجا ؟
لطفا بیشتر توضیح دهید
سلام
عکس با دوربین گوشی گرفته میشه و در لیست ویو نمایش داده میشه بعد از انتخاب از لیست برای ویرایش تصویر وارد صحفه ویرایش میشود و در برگشت به صفحه لیست ویو این خطا نمایش داده می شود
کد هاتون رو قرار بدید تا بتونیم مشکل رو پیدا کنیم
از طریق ادیتور و کلید کد قرار دهید
امکان دانلود ندارم
به احتمال زیاد حجم تصویر خیلی بالاست
باید تصویر را با سایز کوچک بگیرید
با سلام و خسته نباشید
تصویری که Decode میشه درون Bitmap حجم بالایی میگیره و این مشکل رو براتون پیش میاره
کاری که میتونید انجام بدید.
1. موقع گرفتن عکس سایز بدید که بیشتر از اون سایز نباشه
2.برای نمایش عکس بجای استفاده از ImageView از ImageViewAsync استفاده کنید که با نصب پکیج FFImageLoading در اختیار شمار قرار میگیره .
3.هر بار ار اکتیوتی خارج میشوید bitmap را خالی کنید Bitmap.Recycle
4.اگر هم از ImageView استفاده میکنید موقع خروج imageview.Dispose حافظه اشغال شده را آزاد کنید.
موفق باشید.
سلام
ممنون از راهنماییتون
بله همین طور هست هر بار که از اکتیوتی خارج میشم حافظه رو ازاد نمیکنم و این باعث اشغال بیش از حد حافظه میشه
متد OnDestroy رو override کنید یا متد OnBackPressed
ImageView هارو Dispose کنید و GC.Collect رو فراخوانی کنید تا Garbage Collector حافظه اشغال شده رو آزاد کنه.
موفق باشید .
سلام
ممنون مشکل برنامه حل شد با اضافه کردن GC.Collect بعد از Dispose کردن
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)