آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مصرف زیاد رم هنگام لود کردن Bitmap

s.h.salehi  11 سال پیش  11 سال پیش
0 0

سلام دوستان من یک سری عکس دارم که در sdcard قرار دارن حالا میخوام اون ها رو با Bitmap فراخوانی بکنم ولی اجرای این Bitmap حدود 2 ثانیه طول میکشه و رم زیادی رو اشغال میکنه در ضمن عکس هایی هم که لود میکنه حجمشون حدود 1.2 مگابایت است لطفا راهنمایی بکنید که چیکارش بکنم این کدش هست :

final File[] files = new File[] {
		new File(Environment.getExternalStorageDirectory(), "/folder/1.png"),
		new File(Environment.getExternalStorageDirectory(), "/folder/2.png"),
new File(Environment.getExternalStorageDirectory(), "/folder/3.png"),
new File(Environment.getExternalStorageDirectory(), "/folder/4.png"),
new File(Environment.getExternalStorageDirectory(), "/folder/5.png"),
new File(Environment.getExternalStorageDirectory(), "/folder/6.png")
};



---------------------------------------------------------------------




Bitmap b = BitmapFactory.decodeFile(files[position].getPath());
0 0
کسی بلد نیست؟ (11 سال پیش)
0 0
کسی بلد نیست؟ (11 سال پیش)
+2 0
زمانی که عکسی با حجم بالا را با استفاده از bitmap نمایش میدهید ، حافظه Heap گوشی پر میشه و باعث کندی و یا کرش برنامه میشه . بهترین کار این هست که قبل از نمایش عکس حجم اون رو با استفاده از توابع کلاس Bitmap کم کنید که در آموزش های استاد توضیحات لازم در این مورد داده شده . (11 سال پیش)
0 0
راهی جز کاهش حجم نیست؟ چون اصلا نمیتونم اینکار رو بکنم و باید بالاترین کیفیت رو داشته باشه (11 سال پیش)
+2 0
باید طوری عکس هارو نمایش بدید مثلا در یه viewPager که همه رو با هم نیاره . (11 سال پیش)
+2 0
از این کتابخانه استفاده کنید : لینک (11 سال پیش)
0 0
دوستان از راهنماییاتون ممنونم ولی من نمیخوام عکس ها رو نمایش بدم میخوام والپیپر بکنمشون اصلا این Bitmap برای نمایش عکس نیست (11 سال پیش)
+1 0
برای استفاده در بک گروند هم از همین کلاس استفاده کنید به شدت بهینه میکنه (11 سال پیش)
0 0
محمدحسین توی کدوم آموزش هست ؟ (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  11 سال پیش
+3 0

1: باید برای عکس ها ThumbNail درست کنید و نباید عکس کیفیت بالا رو در همه جا استفاده کنید.
2: عکس ها باید دونه دونه Load بشن، مثلا استفاده از ViewPager , ListView و ... پیشنهاد میشه.
3: در استفاده از بیت مپ (طبق تجربه من) حجم عکس مهم نیست بلگه اندازه عکس هست که مشکل بوجود میاره. شما یک عکس 100 کیلوبایتی با ابعاد بزرگ هم داشته باشی روی نوت 3 رم کم میاری!

پاسخ به سوال 
s.h.salehi  11 سال پیش
+1 0

از راهنمایی هاتون ممنونم 

 

من همون طور که گفتید عکس ها رو دونه دونه لود میکنم 

امکان کاهش اندازه رو هم ندارم

عکس ها رو هم میخوام والپیپر بکنم ولی  موقع تنظیم والپیپر 2-5 ثانیه گوشی قفل میکنه!!

راه دیگه ای نیست؟

+2 0
شما باید 3 یا 4 اندازه عکس داشته باشید، زمانی که میخواید Request به سرور بفرستید سایز Lcd رو چک کنید، حتی میتونید یک متغیر توی dimens ها ست کنید و سایز روهم چک نکنید، زمانی که lcd بزرگ بود شما عکس بزرگ نمایش بدید. (11 سال پیش)
0 0
ممنونم از راهنماییتون (11 سال پیش)

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