رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.
netlog

دانلود و ذخیره تصاویر در حین نمایش تصاویر در مولتی پنل

پست های پیشنهاد شده

netlog    2

گروه دانشجو

سلام به دوستان
من جدولی با فیلدهای زیر دارم:
ID,ImageURL,ImageTarget

و می خوام این سناریو رو پیاده کنم :

1- خواندن همه رکوردها و دانلود تصویر موجود در فیلد ImageUrl
2- ذخیره تصویر دانلود شده در حافظه دستگاه dirInternal و به روز رسانی فیلد ImageTarget
3- نمایش همه تصاویر در مولتی پنل

من این کار رو از طریق زیر انجام دادم:

Sub LoadImages
    ProgressDialogShow2("getting start",False)   
    Dim i As Int
    Dim topY as Int = 0
    Dim query as SQL
    Dim records as Cursor
   
    svPanel.Panel.RemoveAllViews
   
    records = query.ExecQuery("select ID,ImgUrl,ImgFileName from tblImages limit 25")
   
    If (records.RowCount > 0) Then
        For i = 0 To records.RowCount -1
            records.Position = i
            topY = 2%y

            Dim ps As Panel
            ps.Initialize("ps")
            svPanel.Panel.AddView(ps,1%x,topY,98%x,25%y)
       
            ps.LoadLayout("layoutElements")

            ImageView1.tag = "img" & i & ".png"           

            Dim target As DefaultTarget   
            target.Initialize("target",ImageView1)  'ImageView1 Defined in layoutElements

            Dim p As Picasso
            p.Initialize
            p.LoadUrl( records.GetString("ImgUrl") ).Fetch(target)
            p.LoadUrl( records.GetString("ImgUrl") ).IntoImageView(ImageView1)
        Next           
    Else
        Log("no records found")
    End If

    records.Close   
    ProgressDialogHide
End Sub

Sub target_Success(Bitmap1 As Bitmap, Tag As Object)
    Dim img As ImageView
    img = Tag
    Dim filename As String = img.Tag
    Dim ou As OutputStream
    ou = File.OpenOutput(File.DirInternal,filename,False)
    Bitmap1.WriteToStream(ou,100,"PNG")
    ou.Close
    img.SetBackgroundImage(LoadBitmap(File.DirInternal,filename))   
End Sub

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

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

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

پیشاپیش از وقتی که میذارید تشکر می کنم.

 

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


لینک به ارسال
netlog    2

گروه دانشجو

علت تکرار این مطلب مشکل سایت بوده است.لطفا مدیران سایر مطالب تکراری رو حذف کنند

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


لینک به ارسال
شایان آباد    6,146

بنیان گذار و مدیر فنی

علت تکرار این مطلب مشکل سایت بوده است.لطفا مدیران سایر مطالب تکراری رو حذف کنند

 

درود

با تشکر از اطلاع رسانی شما

اقای سلطانی به بخش بایگانی انتقال دادن

موفق باشید

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


لینک به ارسال
امیرحسین طرق پیما    1,169

دپارتمان سرپرست

درود

برای استفاده از نخ ها

اول کتابخونه thearding رو فعال کنید

و بعد از کد زیر استفاده کنید

	 Dim th1 As Thread
		 th1.Initialise("th1")
		 th1.RunOnGuiThread("esm sub",Null)

خط اخر کارش اجرای اون ساب هست

پس بجای نوشتن اسم اون ساب

اسمشو داخل اون کد بنویسی و کد رو اونجا قرار بدید

موفق باشید

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


لینک به ارسال
netlog    2

گروه دانشجو

 

 

برای استفاده از نخ ها اول کتابخونه thearding رو فعال کنید و بعد از کد زیر استفاده کنید Dim th1 As Thread th1.Initialise("th1") th1.RunOnGuiThread("esm sub",Null) خط اخر کارش اجرای اون ساب هست پس بجای نوشتن اسم اون ساب اسمشو داخل اون کد بنویسی و کد رو اونجا قرار بدید

ضمن تشکر، این کار رو هم کردم اما در کاهش کندی برنامه تاثیری نداشت

آیا به نظرتون خود کدهایی که قراردادم امکان بهینه شدن نداره؟ یا راهکار بهتری برای پیاده سازی سناریوی طرح شده وجود نداره؟

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


لینک به ارسال
امیرحسین طرق پیما    1,169

دپارتمان سرپرست

ضمن تشکر، این کار رو هم کردم اما در کاهش کندی برنامه تاثیری نداشت

آیا به نظرتون خود کدهایی که قراردادم امکان بهینه شدن نداره؟ یا راهکار بهتری برای پیاده سازی سناریوی طرح شده وجود نداره؟

در استایل ویو هاتون از عکس استفاده نکنید تا حد امکان

بهتره از لیمیت استفاده کنید

و از گذاشتن کدهای بیهونده خودداری کنید

موفق باشید

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


لینک به ارسال

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • مطالب مشابه

    • توسط hossein22
      با سلام 
      اقا من میخاستم چند تا عکسو مثلا ( از id = 1 تا id = 10 ) بیام عکساشو بگیرم از دیتابیس آفلاین
      هر موقع روی دکمه باتن کلیک کردم بره عکس بعدیو نشون بده 
      تمام آموزش های موجود میان فقط با listview یاد میدن
      ولی من لیست ویو نمیخام فقط عکس هستش که میخام لودش کنم 
      با کتابخانه فراخانی ام این کارو کردم ولی فقط میاد عکس اول رو میگیره یعنی این قابلیتو نداره کتابخانه فراخانی که بیاد از id = 1  تا  id = 10  رو عکس هاشو بگیره فقط اولیرو میگیره
      لطفا راهنمایی کنید من تو تمام انجمن های برنامه نویسی اینو مطرح کردم ولی هیچ کس جواب نداده ممنون میشم جواب بدید
    • توسط milad19
      سلام وقت بخیر
      با کتابخانه Picasso میخوام ارتفاع تصویر رو دریافت کنم اما ارور میده
      با استفاده از کد زیر :
      dim test as string test = pica1.LoadUrl(imgv.Tag).Get.Height  
    • توسط seol
      درود 
      دوستان من میخوام یه البوم  عکس درست کنم  که بوسیله دکمه به عکس بعدی یا قبلی بره
      ولی  چون برنامه نویسی رو تازه شروع کردم هنوز اطلاعات دقیقی  ندارم  اگه میشه کمکم کنید 
    • توسط emperor
      سلام دوستان،
      من در پروژه ام از کتابخانه پیکاسو استفاده کردم و همه چی خوب بود اما ویندوز رو عوض کردم و مجددا که پروژه رو اجرا کردم این خطا رو به من میده:
       
      B4A Version: 7.30
      Parsing code.    (0.10s)
      Compiling code.    (0.64s)
      Compiling layouts code.    (0.01s)
      Organizing libraries.    (0.00s)
      Generating R file.    (1.61s)
      Compiling generated Java code.    (5.00s)
      Convert byte code - optimized dex.    Error
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Cache;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Cache$1;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/LruCache;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso$1;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso$Builder;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso$Listener;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/PicassoDrawable;
      Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Request;
      UNEXPECTED TOP-LEVEL EXCEPTION:
      java.lang.RuntimeException: Translation has been interrupted
          at com.android.dx.command.dexer.Main.processAllFiles(Main.java:689)
          at com.android.dx.command.dexer.Main.runMonoDex(Main.java:313)
          at com.android.dx.command.dexer.Main.run(Main.java:279)
       
          at com.android.dx.command.dexer.Main.main(Main.java:247)     at com.android.dx.command.Main.main(Main.java:106)
      Caused by: java.lang.InterruptedException: Too many errors
          at com.android.dx.command.dexer.Main.processAllFiles(Main.java:681)
          ... 4 more
        کسی می تونه بگه مشکل چیه؟ ممنون از همه.
  • کاربران آنلاین در این صفحه   0 کاربر

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

×