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

گت المنت کردن عکسِ با تغییر نام


Kazem Forghani

سوال

سلام

توی این آدرس من می خوام اون عکسی که وضعیت هوا رو نشون می ده گت المنت کنم. مشکل کار این جاس که هر دفعه که وضعیت هوا تغییر می کنه نام اون عکس هم تغییر می کنه... یه مشکل دیگه هم وجود داره که معلوم نیست این عکس توی چه آی دی قرار داره. چون داره خود این سایت از یه جای دیگه گت المنت می کنه.

لطفا به سورس آدرسی که دادم یه سر بزنید... ممکنه بتونید کمکم کنید.

ممنون زیاد

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

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

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

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

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

درود

به نظر من دو تا راه داری

1- یا یک سایت درست و حسابی پیدا کنی در این ضمینه که Element هاش راحت باشه

2- همین سورس کد رو کامل بخونی و با SubString و IndexOF و SubString2 مقادیر رو جدا کنی و بگیری !

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

سلام کاظم جان

منم این مشکلو داشتم و با کتابخانه HttpUtils2 و خاصیت Contains و IndexOf و SubString و SubString2 ب راحتی حل شد

در ضمن سرعتش هم بیشتره حتی توی مولتی پنل و چندتا عکس هم امتحان کردم

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

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

Sub Globals
Private ImageView1 As ImageView
Dim job1 As HttpJob
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Main")
job1.Initialize("job1",Me)
job1.Download("http://www.irimo.ir/far/wd/701-%D9%BE%DB%8C%D8%B4-%D8%A8%DB%8C%D9%86%DB%8C-%D9%88%D8%B6%D8%B9-%D9%87%D9%88%D8%A7%DB%8C-%D8%A8%D8%B4%D8%B1%D9%88%DB%8C%D9%87.html?id=345")
End Sub
Sub jobdone (job As HttpJob)
If job.Success = False Then
ToastMessageShow("خطا" ,True)
Else If job.Success = True Then
	Dim get As String
		get = job.GetString
		get = get.Replace("""","'")
		Dim k As String = Regex.Split("<img",get)
		If k.Contains("'<img src='") Then
		If k.Contains("'<img src='http://www.irimo.ir/far/parameters/weather") Then
			Dim str As String =k
				str=str.SubString(str.IndexOf("<img scr='") + 9)
				str=str.SubString2(0,str.IndexOf("'>") -0)
				ImageView1.Bitmap = str
				End If
				End If
End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون...

ارور داد:

B4A version: 5.20
Parsing code.    (0.04s)
Compiling code.    (0.42s)
Compiling layouts code.    (0.47s)
Generating R file.    (3.15s)
Compiling generated Java code.    Error
B4A line: 51
ImageView1.Bitmap = str
javac 1.7.0_80
src\b4a\example\main.java:380: error: inconvertible types
mostCurrent._imageview1.setBitmap((android.graphics.Bitmap)(_str));
                                                           ^
  required: Bitmap
  found:    String
لینک ارسال
به اشتراک گذاری در سایت های دیگر

مشکل رو خودم درست کردم ولی وقتی اجرا شد هیچ کاری انجام نشد:

اینم کد ها:

Sub Globals
	Private ImageView1 As ImageView
	Dim job1 As HttpJob
	Dim j As HttpJob
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("main")
	job1.Initialize("job1",Me)
	job1.Download("http://www.irimo.ir/far/wd/701-%D9%BE%DB%8C%D8%B4-%D8%A8%DB%8C%D9%86%DB%8C-%D9%88%D8%B6%D8%B9-%D9%87%D9%88%D8%A7%DB%8C-%D8%A8%D8%B4%D8%B1%D9%88%DB%8C%D9%87.html?id=345")
End Sub

Sub Activity_Resume
	
End Sub

Sub Activity_Pause (UserClosed As Boolean)
	
End Sub

Sub jobdone (job As HttpJob)
If job.JobName = "job1" Then
	If job.Success = False Then
	ToastMessageShow("خطا" ,True)
	Else If job.Success = True Then
		Dim get As String
			get = job.GetString
			get = get.Replace("""","'")
			Dim k As String = Regex.Split("<img",get)
			If k.Contains("'<img src='") Then
			If k.Contains("'<img src='http://www.irimo.ir/far/parameters/weather") Then
				Dim str As String =k
					str=str.SubString(str.IndexOf("<img scr='") + 9)
					str=str.SubString2(0,str.IndexOf("'>") -0)
					j.Initialize("j",Me)
					j.Download(str)
					End If
					End If
	End If
End If
If job.JobName = "j" Then
	ImageView1.Bitmap = job.GetBitmap
End If
End Sub

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

فکر کنم یافتم :fekr:


 


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


 


ی سرویس به پروژتون اظافه کنید به اسم ImageDownloader بعدش کدای زیرو داخل سرویس بذارید :



#Region Service Attributes
#StartAtBoot: False
#End Region

Sub Process_Globals
Private cache As Map
Private tasks As Map
Private ongoingTasks As Map
End Sub

Sub Service_Create
tasks.Initialize
cache.Initialize
ongoingTasks.Initialize
End Sub

Sub Service_Start (StartingIntent As Intent)

End Sub

Sub Service_Destroy

End Sub
Sub Download (ImageViewsMap As Map)
Try
For i = 0 To ImageViewsMap.Size - 1
tasks.Put(ImageViewsMap.GetKeyAt(i), ImageViewsMap.GetValueAt(i))
Dim link As String = ImageViewsMap.GetValueAt(i)
link = link.Replace(" ","%20")
If cache.ContainsKey(link) Then
Dim iv As ImageView = ImageViewsMap.GetKeyAt(i)
iv.SetBackgroundImage(cache.Get(link))
iv.Gravity = Gravity.FILL
Else If ongoingTasks.ContainsKey(link) = False Then
Log("Cache Size: " & cache.Size)
If cache.Size > 20 Then
cache.Clear
End If
ongoingTasks.Put(link, "")
Dim j As HttpJob
j.Initialize(link, Me)
j.Download(link)
End If
Next
Catch
Log(LastException.Message)
End Try
End Sub

Sub JobDone(Job As HttpJob)
Try
ongoingTasks.Remove(Job.JobName)
If Job.Success Then
Dim bmp As Bitmap = Job.GetBitmap


If tasks.IsInitialized Then
For i = 0 To tasks.Size - 1

Dim link As String = tasks.GetValueAt(i)
If link = Job.JobName Then

Dim iv As ImageView = tasks.GetKeyAt(i)
iv.Gravity = Gravity.FILL
Dim b2 As Bitmap
b2.InitializeMutable(iv.Width,iv.Height)

Dim c As Canvas
c.Initialize2(b2)

Dim r1 As Rect
r1.Initialize(0,0,bmp.Width,bmp.Height)

Dim xdif As Float = iv.Width / bmp.Width
Dim ydif As Float = iv.Height / bmp.Height

Dim NewX As Float = bmp.Width * xdif
Dim NewY As Float = bmp.Height * ydif

Dim NewZ As Float = (iv.Width + iv.Height) / (bmp.Width + bmp.Height)

Dim r2X As Float
Dim r2Y As Float

If NewX > NewY Then
'Log("X")
r2X = bmp.Width * ydif
r2Y = NewY
Else
'Log("Y")
r2X = NewX
r2Y = bmp.Height * xdif
End If

If r2X > iv.Width Then
Dim NewRatio As Float = (iv.Width / r2X)
r2X = r2X * NewRatio
r2Y = r2Y * NewRatio
End If

Dim NewLeft As Float = ((iv.Width - b2.Width) / 2)
Dim NewTop As Float = ((iv.Height - b2.Height) / 2)

Dim r2 As Rect
r2.Initialize(NewLeft,NewTop,r2X,r2Y)

c.DrawColor(Colors.Transparent)
c.DrawBitmap(bmp,r1,r2)
c = Null
cache.Put(Job.JobName, b2)
iv.Bitmap = b2
iv.Gravity = Gravity.FILL
End If

Next
End If
Else
Log("Error downloading image: " & Job.JobName & CRLF & Job.ErrorMessage)
cache.Put(Job.JobName, bmp)

If tasks.IsInitialized Then
For i = 0 To tasks.Size - 1

Dim link As String = tasks.GetValueAt(i)
If link = Job.JobName Then
Dim iv As ImageView = tasks.GetKeyAt(i)
iv.Gravity = Gravity.FILL
iv.SetBackgroundImage(bmp)
'StopService("ImageDownloader")
'CancelScheduledService("ImageDownloader")
End If
Next
Else
Log("Error downloading image: " & Job.JobName & CRLF & Job.ErrorMessage)
End If

End If
Catch
Log(LastException.Message)
End Try
Job.Release
End Sub
Sub ActivityIsPaused
tasks.Clear
End Sub


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



If job.JobName = "j" Then
Dim map1 As Map
map1.Initialize
map1.Put(ImageView1, str)
CallSubDelayed2(ImageDownloader, "Download", map1)
End If

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

بایگانی شده

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

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

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