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

فراخوانی عکس از دیتابیس آفلاین


MasterMind

سوال

سلام

 

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

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

 

در ضمن ، ارور توی قسمت

 

 
    For i = 1 To 100
        cur.Position=i
        ListView1.AddTwoLinesAndBitmap("VisitCard"& cur.GetString("ID"),"By"& cur.GetString("abt"),picture )

    Next
نمیدونم چجوری باید فراخوانی کرد                                                                                                                                                                                                                         


Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.

End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Private SV As ScrollView
	Private TB As TabHost
	Private ListView1 As ListView
	
	Dim prim As SQL
	Dim cur As Cursor

End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	'Activity.LoadLayout("Layout1")
	
		If FirstTime = True Then 
		If File.exists (File.dirinternal,"creative.db") = False Then
			File.copy (File.DirAssets,"creative.db" , File.dirinternal,"creative.db")
		End If
	End If	
	
	If prim.IsInitialized=False Then
		prim.Initialize(File.dirinternal,"creative.db",False)
	End If
	
	Activity.LoadLayout("L1")
	TB.AddTab("لوگو","Scroll")
	TB.AddTab("کارت ویزیت","scroll")
	TB.AddTab("بیلبورد","scroll")
	TB.AddTab("پوستر","scroll")
	TB.AddTab("عکاسی","scroll")
	

	

	SV.Panel.LoadLayout("p1")
	SV.Panel.Height=ListView1.height
	

	
	For i = 1 To 100
		cur.Position=i
		ListView1.AddTwoLinesAndBitmap("VisitCard"& cur.GetString("ID"),"By"& cur.GetString("abt"),picture )
	Next
		


End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub picture (name As String) As Bitmap
	Dim bytes()As Byte
	bytes = cur.GetBlob("IMAGE")
	
	Dim input As InputStream
	input.InitializeFromBytesArray(bytes,0,bytes.Length)
	
	Dim b As Bitmap
	b.Initialize2(input)
	input.Close
	
	Return(b)


End Sub




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

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

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

ببین دوست عزیز.من واست تصحیحش کردم،امیدوارم همون چیزی که میخای باشه.من فراخوانی رو حذف کردم و به طور مستقیم از تکست استفاده کردم واسه لود عکسها.توی ادرس دهی عکس ها از دیتابیس هم دقت کن.تمام فایلاتو توی پوشه ی فایل بذار.و فقط اسمشون رو توی دیتابیس بذار.

ضمنا اون قسمت pic که عکسای لایک و اینارو یک چک کن،بنظر من اون عکس جست و جو رو نباید توی دیتابیس بذاری.دقت کن داداش.

اینم لیمک:http://s3.picofile.com/file/8212539050/Creative.zip.html

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

اون عکس جستجو و لایک ، برای این بودن که ببینم برنامه کار میکنه یا نه ، هدفم یه چیز دیگه س:)

باز هم خیلی ممنون :)

cur=visit.ExecQuery("Select * from visit")
For i = 0 To cur.RowCount-1
	cur.Position=i
	Dim panel1 As Panel
	panel1.Initialize("panel1")
	SV.Panel.addview(panel1,0,stop,100%x,100%y)
	stop=stop+25%y
	panel1.LoadLayout("p1")
	label1.Text=cur.GetString("name")
	label2.Text=cur.GetString("abt")
	label3.Text=cur.GetString("like")
	imageview1.SetBackgroundImage(LoadBitmap(File.DirAssets,cur.GetString("pic")))
	SV.panel.height=stop

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

خیلی ممنون از کمک :)

 

ولی یه مشکل دیگه پیش اومده ، موقع اجرا برنامه میگه کرسر باید initialize بشه ...

Sub Process_Globals
	'These global variables will be declared once when the application starts.
			'These variables can be accessed from all modules.
Dim visit As SQL
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Private SV As ScrollView
	Private TB As TabHost
	
	Dim panel1 As Panel
	
	Dim label1 As Label
	Dim label2 As Label
	Dim label3 As Label
	
	Dim imageview1 As ImageView
	Dim imageview2 As ImageView
	Dim imageview3 As ImageView
	
	Dim cur As Cursor
	
	Private img3 As ImageView
	Dim stop As Int = 3%y
	
	
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	'Activity.LoadLayout("Layout1")
	
		If FirstTime = True Then 
		If File.exists (File.dirinternal,"creative.db") = False Then
			File.copy (File.DirAssets,"creative.db" , File.dirinternal,"creative.db")
		End If
	End If	
	
	If visit.IsInitialized=False Then
		visit.Initialize(File.dirinternal,"creative.db",False)
	End If
	
	Activity.LoadLayout("L1")
	TB.AddTab("لوگو","Scroll")
	TB.AddTab("کارت ویزیت","scroll")
	TB.AddTab("بیلبورد","scroll")
	TB.AddTab("پوستر","scroll")
	TB.AddTab("عکاسی","scroll")
	
	SV.Panel.LoadLayout("p1")
	
	For i = 1 To cur.RowCount-1
	cur.Position=i
	Dim p As Panel
	p.Initialize("p")
	SV.panel.addview(p,0,stop,100%x,100%y)
	p.LoadLayout("p1")
	label1.Text=cur.GetString("name")
	label2.Text=cur.GetString("abt")
	label3.Text=cur.GetString("like")
	imageview1.Bitmap=picture(i)
	Next
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub picture (ID As String) As Bitmap
	
	Dim cur As Cursor	
	cur=visit.ExecQuery("SELECT pic FROM visit WHERE ID ='"& ID & "'")	
	cur.Position=0
	
	Dim bytes()As Byte
	bytes = cur.GetBlob("pic")
	
	Dim input As InputStream
	input.InitializeFromBytesArray(bytes,0,bytes.Length)
	
	Dim b As Bitmap
	b.Initialize2(input)
	input.Close
	
	Return(b)

End Sub

باز هم ممنون از کمک :)

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

بسته به نوع دیتابیس تون ، ذخیره خود عکس ها تو دیتابیس باعث سنگین شدنش میشه اگه

 

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

 

حالا کتابخانه Farakhani هست اگه نبود خوندن فیلد Image و تبدیل آرایه بایتی به عکس خودش

 

کمی کار داره.

 

معمولا آدرس یا نام عکس رو ذخیره میکنن تو دیتابیس

بجای خود عکس !

 

موفق باشید ./

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

هر کاری میکنم درست نمیشه :|

میگه بیتمپ نمیتونه لود شه 

 

دانلود

ببین دوست عزیز.من واست تصحیحش کردم،امیدوارم همون چیزی که میخای باشه.من فراخوانی رو حذف کردم و به طور مستقیم از تکست استفاده کردم واسه لود عکسها.توی ادرس دهی عکس ها از دیتابیس هم دقت کن.تمام فایلاتو توی پوشه ی فایل بذار.و فقط اسمشون رو توی دیتابیس بذار.

ضمنا اون قسمت pic که عکسای لایک و اینارو یک چک کن،بنظر من اون عکس جست و جو رو نباید توی دیتابیس بذاری.دقت کن داداش.

اینم لیمک:http://s3.picofile.com/file/8212539050/Creative.zip.html

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

 

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

اون عکس جستجو و لایک ، برای این بودن که ببینم برنامه کار میکنه یا نه ، هدفم یه چیز دیگه س :)

باز هم خیلی ممنون :)

cur=visit.ExecQuery("Select * from visit")
For i = 0 To cur.RowCount-1
	cur.Position=i
	Dim panel1 As Panel
	panel1.Initialize("panel1")
	SV.Panel.addview(panel1,0,stop,100%x,100%y)
	stop=stop+25%y
	panel1.LoadLayout("p1")
	label1.Text=cur.GetString("name")
	label2.Text=cur.GetString("abt")
	label3.Text=cur.GetString("like")
	imageview1.SetBackgroundImage(LoadBitmap(File.DirAssets,cur.GetString("pic")))
	SV.panel.height=stop

Next

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

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

سلام

تصاویر رو به شکل BLOB در بانک ذخیره کنید(نه ادرس و نه نام، فقط BLOB) و از کتابخانه فرخوانی نسخه 3 استفاده کنید، فیلم اموزشی، سورس هم در تاپیک هست

http://answercenter.ir/topic/6098-کتابخانه-farakhani-نسخه-3/

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

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

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

بایگانی شده

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

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

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