رفتن به مطلب
  • 0

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


پژمان نیکروان

سوال

سلام :-d

جالب اینجاست این مشکل هنگ در تصاویر و کم شدن کیفیت روی منم اثر گذاشته و واقعا موندم چیکار کنم.

من لیست تعدادی از عکس رو از کارت حافظه فراخوانی کردم و با یک پنل توی اسکرول ویو اضافش کردم.

در مورد عکس های کم به تعداد 16 تا مشکلی پیش نمیاد.

اما تعداد مثلا اگه 25تا باشه موقع لیست کردن عکسا کم کم عکس های دیگه کیفیتشون کم میشه و برنامه هم اصلا انگاه داره میترکه *r24*

error.gif

ما اینجا گرد هم اومدیم تا ببینیم مشکل واقعا چیه؟؟ :-d

آیا بیسیک4اندروید باگ داره که اینجوری میشه؟

آیا راه حلی در سایت اصلی هم وجود نداره؟؟

و در کل دلیل این هنگ و کم شدن کیفیت برای چیه؟

حتی من با تایمر عکسارو 5تا 5تا هم لود کردم اینبار اررور نداد ولی عکسا کم کیفیت شد و اررور هایی همچنان تو لاگ مثل عکس بالا میومد. *fekr*

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ ها 68
  • ایجاد شده
  • آخرین پاسخ

ارسال‌های توصیه شده

من هنوز مشکلم حل نشده.


عکسارو از دیزاینر به ایمیج ویو اتصال ندادم و از کد زیر برای اتصال استفاده کردم.



ImageView1.SetbackgrandImage(loadbitmapsample(File.dirasset,"aks"))

و قبل از فینیش کردن اکتیویتی اونو نال میکنم



Imageview1.SetbackgrandImage(null)

اما بازم وقتی زیاد از یه اکتیویتی به اکتیویتی بعدی میرم عکسا دارای افت کیفیت میشن و سرعت برنامه کمتر میشه.


چه کار کنم؟؟؟


 


کد هارو دستی نوشتم.اگه اشکالی توشون هست شما به بزرگیتون ببخشید.


لینک ارسال
به اشتراک گذاری در سایت های دیگر

من اجرا کردم این دو خط رو

ولی هنوز به جواب نرسیدم

هنوز تصاویرم تار میشه و صفحه هنگ میکنه

کدوم دو خط رو انجام دادید؟؟

اصلا هیچ تغییری نکرد این کارایی که کردین؟؟!

سعی کنید حجم عکساتون رو بیارید پایین درست میشه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در سایت منبع گفته وقتی شما از loadbitmapsample استفاده میکنید یک کپی از تصویر اصلی در حافظه است و وقتی اون ابجکت موجود نباشه تصویر هم ازبین میره .

من دقیقا از همین کد استفاده کردم و این خطای حافظه از بین رفت و البته به گفته دوستمون نباید از لایه های همسان استفاده کرد چون ممکنه ابجکتها از بین نرن و عکسها لود بمونند.

( من حرفم رو پس گرفتم ... به روش شما چک کردم متاسفانه افزایش استفاده از مموری موقت کاملا مشهوده .. فقط با ورود و خروج از منوها ... حالا روی گوشی های دیگه هم چک میکنم چون روی گوشی خودم کرش نمیکنه اما این مشکل هست باید رفعه بشه . میرم توی سایت منبع ببینم چیزی نوشته شده یا نه .. )

درسته دقیقا ما هم همینو میخوایم که اونا لود باقی نمونن و از بین برن. پس یعنی روش loadBitmapSample هم جواب نداد؟؟

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

و اون روش دومتون هم لطف کنید بگید که روش کار بکنیم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بله من این رو از خود سایت منبع پیدا کردم و در چند جا تاکید شده بود از loadbitmapsample استفاده بشه و در نهایت Null بشه که ظاهرا خود اندروید وقتی تصویر به منبع خودش وصل نباشه از حافظه پاک شده فرض میکنه و رونویسی میشه ..

بله ارور های من همه رفع شد و برنامه هم کرش نکرد خیالتون راحت اون کد هم که بالا زدم و اقای ایمان هم تاکید کرد هم حتما در مانیفیست وارد کنید ..

 

Pnlscr.SetBackgroundImage(LoadBitmapSample(File.DirAssets ,"wall.jpg",300,500))
وقتی کار با هر ابجکت تموم میشه قبل از رموو کردن باید تصویر رو ازش بگیری

Pnlscr.SetBackgroundImage(Null)
به همین سادگی و البته اگر ابجکتهای زیادی داری بهتره یک sub براش درست کنی و اونها رو اونجا پر و خالی کنی

اقای محمدی نمونه همینه اینجا من پنل رو تصویر دادم بجاش هر چی باشه فرقی نداره .

 

این دو خط کدی رو که دادید من استفاده کردم

به این صورت که عکس باتون ها را با  LoadBitmapSample لود کردم

 btn_hadaf.SetBackgroundImage(LoadBitmapSample(File.DirAssets ,"btn_4.png",300,500))

و در زمان برگشت یعنی keypress  اون ها رو null کردم

 btn_hadaf.SetBackgroundImage(Null)

 

 

اما باز هم تصاویر من تار میشه و بعد برنامه هنگ میکنه

لطفا منو راهنماایی کنید................

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مشکل من که حل نشد

لطفا منو راهنمایی کنید

هنوز تصاویر بی کیفیت هستند و با لود کردن و نال کردن فایده ای نداشت

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دیشب یکی از پستهای من نیامده نمیدونم چرا ....

این هم یک کتابخانه که مختص پاک کردن کش هست لطفا اینارو چک کنید و نتیجه رو بگید

این هم ساذه هست

Dim ca As CacheCleaner

ca.clearCache

cacheclean.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من عکس هام رو از دیتا بیس می خونم (حدود 150 تصویر)

حالا چطوری باید از LoadBitmapSample استفاده کنم؟

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اقا یه سوال من مثلا 20 تا عکس داخل HorizontalScrollView1 لود کردم الان میخوام همشو با اون دستور پاک کنم باید چه کار کنم ؟؟؟

برای هر کدوم tag جدا گذاشتم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اقا یه سوال من مثلا 20 تا عکس داخل HorizontalScrollView1 لود کردم الان میخوام همشو با اون دستور پاک کنم باید چه کار کنم ؟؟؟

برای هر کدوم tag جدا گذاشتم

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

فقط کافیه روی همون imageview اعمال کنید:

imageview1.BackGround=Null
لینک ارسال
به اشتراک گذاری در سایت های دیگر

اینوکه میزنم فقط عکس اخری پاک میشه مابقی پا بر جا هستن

نه فکر نکنم اینطور باشه.

مگه از یک imageview استفاده نکردین؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

البته اینجا به یه مشکل برخوردم

 

بعد از زدن هر دکمه که صفحه رو عوض کنه کل صفحه صفید میشه بعد میره صفحه بعد.

 

 

حتی انیمیشن رو هم صفر کردم

 

میشه راهنمایییم کنید کاری میشه کرد؟؟؟

 

چون یکم زشته!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

چرا استفاده کردم الان اون عکس ها که لود میشه بعدش یه کلید گذاشتم که اون دستوره را اجرا کنه 

اجرا که میشه فقط عکس اخری پاک میشه 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دیشب یکی از پستهای من نیامده نمیدونم چرا ....

این هم یک کتابخانه که مختص پاک کردن کش هست لطفا اینارو چک کنید و نتیجه رو بگید

این هم ساذه هست

Dim ca As CacheCleaner

ca.clearCache

مرسی ... من روش کار میکنم. فقط این مختص گوشی های روت هست یا رو همه جواب میده؟؟

******************************************************

در ضمن آقای محمدی... شما 20تا عکس لود میکنید خوبه ولی بیشتر لود میکنید اینجوری میشه ، شاید گوشی من هم همین 20تا هم نتونه طاغت بیاره.

من گفته بودم بیایم عکسارو صفحه بندی کنیم و 5تا 5تا نشون بدیم ، که اونم نمیشه.

چون وقتی پنج تای بعدی رو میخوایم لود کنیم ، بااینکه قبلیارو RemoveAllView میکنیم بازم لود باقی میمونن و رم رو اشغال میکنن. پس باید یجوری عکسای لود شده قبلی رو از بین ببریم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کتابخانه خیلی خوبی بود و شاید نیاز خیلی ها باشه اما به کار ما نمیاد.

چون این کتابخانه در واقع میاد همون حافظه پنهان(Catch) رو پاک میکنه که اینکارو من دستی هم انجام داده بودم که ببینم قدار رم میاد پایین یانه که نیومد.

aa.gif

اما به هرحال کتابخانه مشکلی نداره و میاد همون حافظه پنهان رو پاک میکنه.

ولی این عکسا جالب اینجاست رو حافظه پنهان نیستند آخه... *wooy*

چون اگه بودن اولا حجم حافظه پنهان 20کیلوبایت نمیشد و دوما رم برمیگشت به حالت اول.

اینا رو رم هستن که باید ازاد سازی بشن.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آیا از دوتا لایوت شبیه به هم استفاده کردید؟ مثلا توی پیج 1 بیست و پنج تا عکس لود کردید به نام لایوتmain1 و برای این که کارتون راحت تر بشه برای یه اکتیویتی دیگه هم از همین لایوت استفاده کردید که جای ایمیج ویو ها تغییر نکنه و اونو فقط به اسم main2 نام گذاری کردید؟ اگر این کارو کرده باشید به نظرم باگ هست از خود بسیک چون برای منم دقیقا کپی شما شده بود و فقط. یه لایوت از اول ساختم و کارهامو ادامه دادم

در کل فکر کنم یه برنامه توی همین سایت هست به اسم کم کردن حجم عکس ها از این برنامه استفاده بشه مشکلی پیش نمیاد البته اگه آموزششو اساتید دیگر هم قرار بدن ممنون میشیم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من جواب دادم اما انگار  پستهای چند روز آخر حذف شده مجدد !!!!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...