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

مشکل در خواندن عکس از دیتا بیس


Ali BBH

سوال

سلام خسته نباشید دوستان

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

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

ولی یه جا میخوام مثلا 10 تا عکس رو از دیتا بیس بخونم و قرارش بدم تو لیست ویو که با این ارور مواجه میشم:

java.lang.OutOfMemoryError
    at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:529)
    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:601)
    at anywheresoftware.b4a.objects.drawable.CanvasWrapper$BitmapWrapper.Initialize2(CanvasWrapper.java:519)
    at biz.App.mahsolat._pic(mahsolat.java:778)
    at biz.App.mahsolat._k1_tick(mahsolat.java:726)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169)
    at anywheresoftware.b4a.objects.Timer$TickTack.run(Timer.java:105)
    at android.os.Handler.handleCallback(Handler.java:725)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5041)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    at dalvik.system.NativeStart.main(Native Method)

تا اون جایی که من متوجه شدم  میگه که رم پر میشه و خطا میده

و حالا جالب اینجاست تو امولاتور به این صورته تو امولاتور بیشتر از 2 عکس بخونی از دیتابیس این ارور رو میده

رو گوشی تست کردم فقط یه جا 20 تا عکس بوده باید میخونده و تبدیل میکرده به بیت مپ اونجا دوباره این ارور رو میده بنظر من اینجا بستگی به رم طرف داره که برنامه خوب اجرا بشه یا نه

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

 

اینم کداهایی هستن که استفاده میکنم :

    For i=0 To curM.RowCount-1
        
        curM.Position=i
        
        pic("pic",bit1)
        listkol.AddTwoLinesAndBitmap2("                 "&curM.GetString("name"),"",bit1,curM.GetString("id"))
    Next
Sub pic(image As String,wbitmap As Bitmap) As Bitmap
    Dim buffer() As Byte
    buffer=curM.GetBlob(image)
    Dim inputstream As InputStream
    inputstream.InitializeFromBytesArray(buffer,0,buffer.Length)
    wbitmap.Initialize2(inputstream)
    inputstream.Close
    End Sub

ممنون میشم از دوستان عزیز ک جوابمو بدن خیلی نیاز دارم :malih:


 

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

5 پاسخ به این سوال تاکنون داده شده است

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

درود

از Threading یا همون چند نخی استفاده کنید فکر کنم مشکل حل بشه  :fekr:

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

درود

از Threading یا همون چند نخی استفاده کنید فکر کنم مشکل حل بشه  :fekr:

چجوری استفاده کنم بلد نیستم :gerye:

میشه یه مثال بزنید با کد ؟ :malih:

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

چجوری استفاده کنم بلد نیستم :gerye:

میشه یه مثال بزنید با کد ؟ :malih:

کمی صبر کنید امروز یا حداکثر تا فردا آموزش تصویریش رو قرار میدیم

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

سلام

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

چون این تنها به برنامه نویسی مربوط نمیشه و باید بدونیم که عکس ها به چه شکل فضای رم رو اشغال می کنن و پردازش میشن

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

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

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

بایگانی شده

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

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

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