بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

حداکثر اندازه فایل برای ساختن bitmap ؟

Reza AF  12 سال پیش  12 سال پیش

سلام

من وقتی میخام یک عکس رو از پوشه assets بصورت bitmap درستش کنم و داخل یک imageview نمایش بدم پیغام خطای زیر میاد :

01-23 18:28:21.578: E/AndroidRuntime(693): java.lang.OutOfMemoryError

وقتی از یه عکس کم حجمتر استفاده کردم مشکل رفع شد، میخاستم بدونم حجم عکس حداکثر چقدر باید باشه؟ عکس من کمتر از 150کیلوبات بود.

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Mhaghshenas  12 سال پیش

نه، غلطه :) (12 سال پیش)
پاسخ به سوال 
uncocoder  12 سال پیش

مهم نیست که عکس شما چند کیلو بایت هست، مهم هست که عکس شما چقدر Resolution داره. برای بارگزاری عکس:

1 بایت برای رنگ قرمز + 1 بایت برای رنگ سبز + 1 بایت برای رنگ آبی + 1 بایت برای آلفا که میشه جمعاً 4 بایت.

پس یک عکس 100x200 pixel برابر 100 * 200 * 4 بایت حافظه اشغال می کنه که میشه  80000B = 78KB

حالا مجموع عکس های بارگزاری شده نباید بیشتر از Heap Allocation Memory شما در گوشی ( یا Emulator ) باشه. توجه کنید که حجم منابع مثل گرافیک های اندروید، XML ها و چیزهایی مثل Array و متغیرها هم به این حجم در لحظه اجرا اضافه می شن.

حالا بگید:

  1. سایز عکس شما چقدر بوده؟
  2. چند تا عکس بوده؟
  3. حجم Heap Allocation Memory چقدر بوده؟

با ازای هر پیکسل بارگزاری میشه.

تقریبا 10 تا عکس، و خجم عکسها 100 تا 150 کیلوبایت هستن، یادمه شما توی پروژه ای که انجام دادین عکس چند مگاباتی تست کردین و راحت باز شد، اما برای من خطای حافظه میده. این Heap Allocation Memory رو هم نمیدونم چیه! (12 سال پیش)
شاید توی یک Loop برنامه شما گیر می کنه یا شاید جای دیگه مشکلی دارین و عکس ها هم باعث تسریع مشکل می شن. ( uncocoder در همین الان ) (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .