رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.
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

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

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

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

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

 

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


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

  • مطالب مشابه

    • توسط 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 کاربر

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

×