رفتن به مطلب

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


MR.B4A

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

بااستفاده از این سورس، یک اسلاید منوی بسیار زیبا با قابلیت کلیک آیتم برای پروژه تان بسازید

سورس:

ابتدا توی اکتیویتی که میخواهید منو را پیاده سازی کنید، این کدها را بنویسید:

Sub Process_Globals
	
End Sub

Sub Globals
	
#region appBar
	Dim lblMenu,lblTitle As Label
	Dim pnl_header As Panel
	Private img As ImageView
#end region	
	
#region SlideMenu
	Dim PnlMenu,PnlBackMenu As Panel
	Private Scroll_SlideMenu As ScrollView
	Private img_menu As ImageView
#end region
	
End Sub

Sub Activity_Create(FirstTime As Boolean)
	
	If File.Exists(File.DirInternal,"db.db")=False Then
		File.Copy(File.DirAssets,"db.db",File.DirInternal,"db.db")
	End If
	
	InitAppBar
	Initialize_SlideMenu
	
End Sub

Sub InitAppBar
	img.Initialize("")
	Activity.AddView(img,10%x,20%y,80%x,50%y)
	img.SetBackgroundImage(LoadBitmap(File.DirAssets,"pic1.png"))
	img.Gravity=Gravity.FILL
	
	pnl_header.Initialize("")
	pnl_header.Color = Colors.RGB(85,186,209)
'	pnl_header.Elevation=6dip
	Activity.AddView(pnl_header,0,0,Activity.Width,56dip)
	
	lblMenu.Initialize("lblMenu")
	lblMenu.TextColor	= Colors.White
	lblMenu.Gravity 	= Bit.Or(Gravity.CENTER_HORIZONTAL,Gravity.CENTER_VERTICAL)
	lblMenu.Typeface    = Typeface.MATERIALICONS
	lblMenu.Text 		= Chr(0xE5D2)
	lblMenu.TextSize	= 27
	pnl_header.AddView(lblMenu,pnl_header.Width -50dip,3dip,50dip,50dip)
	
	lblTitle.Initialize("lblTitle")
	lblTitle.TextColor	= Colors.White
	lblTitle.Gravity 	= Bit.Or(Gravity.CENTER_HORIZONTAL,Gravity.CENTER_VERTICAL)
	lblTitle.Text 		= "MR.B4A"
	lblTitle.TextSize	= 18
	pnl_header.AddView(lblTitle,0dip,3dip,pnl_header.Width,50dip)
End Sub

Sub Initialize_SlideMenu
	PnlBackMenu.Initialize("PnlBackMenu")
	
	PnlBackMenu.Color 	= Colors.ARGB(150,106,106,106)
	PnlBackMenu.Visible = False
	PnlBackMenu.BringToFront
	Activity.AddView(PnlBackMenu,0,0,Activity.Width,Activity.Height)
	
	PnlMenu.Initialize("PnlMenu")
	PnlMenu.Visible = False
	PnlMenu.Color   = Colors.White
	PnlBackMenu.AddView(PnlMenu,28%x,0,PnlBackMenu.Width - 28%x,PnlBackMenu.Height)
	img_menu.Initialize("")
	img_menu.SetBackgroundImage(LoadBitmap(File.DirAssets,"pic1.png"))
	img_menu.Gravity=Gravity.FILL
	img_menu.Visible=False
	
	PnlMenu.AddView(img_menu,10%x,30%y,50%x,25%y)
	
	Scroll_SlideMenu.Initialize(2000)
	PnlMenu.AddView(Scroll_SlideMenu,0,0,PnlMenu.Width,PnlMenu.Height)
	
	'برای حذف میله اسکرول ویو.نیاز به کتابخونه 
	'Reflection
	
'	Dim r As Reflector
'	r.Target = Scroll_SlideMenu
'	r.RunMethod2("setVerticalScrollBarEnabled", False, "java.lang.boolean")
	
	ExtentionCode.SlideMenu(Scroll_SlideMenu)

End Sub

Sub LblItem_Click
	Dim lbl As Label
	lbl = Sender
	Dim tag As Int = lbl.Tag
	
	Select tag
		Case 0
			Activity.Finish
			StartActivity("about")
		Case 1
			img_menu.SetVisibleAnimated(1000,True)
		Case 2
			Msgbox("MR.B4A","")
	End Select
'	PnlBackMenu_Click
End Sub
Sub LblMenu_Click
	If PnlBackMenu.Visible = False Then
		Dim anim As AnimationPlus
		PnlBackMenu.SetVisibleAnimated(1000,True)
		anim.InitializeTranslate("anim1" ,PnlMenu.Width-10dip,0,0,0)
		PnlMenu.Top = 0dip
		PnlMenu.Height = PnlBackMenu.Height
		anim.Duration=200
		anim.Start(PnlMenu)
'		PnlMenu.SetVisibleAnimated(1,True)
		PnlMenu.Visible = True
'		PnlBackMenu.BringToFront
	Else
		Dim anim As AnimationPlus
		anim.InitializeTranslate("anim1" ,0,0,PnlMenu.Width-10dip,0)
		PnlMenu.Top = 0dip
		PnlMenu.Height = PnlBackMenu.Height
		anim.Duration=200
		anim.Start(PnlMenu)
		PnlMenu.SetVisibleAnimated(200,False)
		Sleep(200)
		PnlBackMenu.SetVisibleAnimated(1,False)
	End If
	
End Sub
Sub PnlBackMenu_Click
	Dim anim As AnimationPlus
	anim.InitializeTranslate("anim1" ,0,0,PnlMenu.Width-10dip,0)
	PnlMenu.Top 	= 0dip
	PnlMenu.Height  = PnlBackMenu.Height
	anim.Duration   = 200
	anim.Start(PnlMenu)
	PnlMenu.Visible = False
	Sleep(80)
	PnlBackMenu.SetVisibleAnimated(1,False)
End Sub
Sub PnlMenu_Click
	Log("")
End Sub


Sub Activity_KeyPress (KeyCode As Int) As Boolean
	If KeyCode = KeyCodes.KEYCODE_BACK And PnlBackMenu.Visible = True Then
		
		Dim anim As AnimationPlus
		anim.InitializeTranslate("anim1",0,0,PnlMenu.Width-10dip,0)
		PnlMenu.Top 	= 0dip
		PnlMenu.Height  = PnlBackMenu.Height
		anim.Duration   = 200
		anim.Start(PnlMenu)
		PnlMenu.Visible = False
		PnlBackMenu.SetVisibleAnimated(50,False)
		
		Return True
	Else if KeyCode = KeyCodes.KEYCODE_BACK Then
		ExitApplication
		Return True
	Else
		Return False
	End If
End Sub
Sub PnlMenu_Touch (Action As Int, X As Float, Y As Float)
	Dim Start_TouchX As Int
	Select Action
		Case Activity.ACTION_DOWN
			Start_TouchX = X
		Case Activity.ACTION_UP
			If Abs(X-Start_TouchX) > 50dip Then
				If X > Start_TouchX Then ' swipe right
					Log("right")
					Dim anim As AnimationPlus
					anim.InitializeTranslate("anim1" ,0,0,PnlMenu.Width-10dip,0)
					PnlMenu.Top	   = 0dip
					PnlMenu.Height = PnlBackMenu.Height
					anim.Duration  = 200
					anim.Start(PnlMenu)
					PnlMenu.SetVisibleAnimated(200,False)
					Sleep(80)
					PnlBackMenu.SetVisibleAnimated(1,False)
				End If
				If X < Start_TouchX Then ' swipe left
					Log("left")
					
				End If
	
			End If
	End Select

End Sub

یک ماژول بسازید و این کدها را داخلش کپی کنید:

Sub Process_Globals
'	Dim FontIransanse As Typeface			= Typeface.LoadFromAssets("iransans.ttf")
	Dim ListItem As List 					= Array As String("درباره ما","MR.B4A","برنامه نویسی اندروید با...")
	Dim ListIcon As List 					= Array As String(Chr(0xE853),Chr(0xE859),Chr(0xE22B),Chr(0xE8E8))
	Dim top As Int
End Sub

Sub SlideMenu(sc As ScrollView)
	top = 0
	For i = 0 To ListItem.Size - 1
		Dim PnlItem As Panel
		PnlItem.Initialize("PnlItem")
		Dim cd As ColorDrawable
		cd.Initialize(Colors.Transparent,5dip)
		PnlItem.Background = cd
		sc.Panel.AddView(PnlItem,5dip,top,sc.Width-10dip,40dip)
		
		Dim LblIconConst As Label
		LblIconConst.Initialize("")
		LblIconConst.TextColor	= 0xFF3E3E3E
		LblIconConst.Gravity 	= Bit.Or(Gravity.CENTER_HORIZONTAL,Gravity.CENTER_VERTICAL)
		LblIconConst.Typeface 	= Typeface.MATERIALICONS
		LblIconConst.Text 		= Chr(0xE5CB)
		LblIconConst.TextSize	= 25
		PnlItem.AddView(LblIconConst,2dip,2dip,38dip,PnlItem.Height - 4dip)
		
		Dim LblItem As Label
		LblItem.Initialize("LblItem")
		LblItem.TextColor	= 0xFF3E3E3E
		LblItem.Gravity 	= Bit.Or(Gravity.CENTER_VERTICAL,Gravity.RIGHT)
'		LblItem.Typeface 	= FontIransanse
		LblItem.Text 		= ListItem.Get(i)
		LblItem.TextSize	= 14
		LblItem.Tag = i
		PnlItem.AddView(LblItem,40dip,2dip,PnlItem.Width - 80dip,PnlItem.Height - 4dip)
		
		Dim LblIconVar As Label
		LblIconVar.Initialize("")
		LblIconVar.TextColor	= 0xFF3E3E3E
		LblIconVar.Gravity 	= Bit.Or(Gravity.CENTER_HORIZONTAL,Gravity.CENTER_VERTICAL)
		LblIconVar.Typeface 	= Typeface.MATERIALICONS
		LblIconVar.Text 		= ListIcon.Get(i)
		LblIconVar.TextSize	= 25
		PnlItem.AddView(LblIconVar,PnlItem.Width - 38dip,2dip,38dip,PnlItem.Height - 4dip)
		
		If i=1 Then
			LblItem.TextColor=0xFF3EA3B5
			LblIconVar.TextColor=0xFF3EA3B5
			LblItem.TextSize=16
			
		Else If i=3 Then
			LblItem.TextColor=0xFF00CAFF
			LblItem.TextSize=20
		Else If i=0 Then
			LblItem.TextColor= 0xFFC13B63
			LblItem.Typeface=Typeface.DEFAULT_BOLD
			LblItem.TextSize=22
		End If
		
		top = top + 45dip
	Next
	sc.Panel.Height = top
End Sub

حالا شما این منوی زیبا را دارید:

https://aparat.com/v/hbz60ez

طراح و تهیه کننده:
مرتضی صباغی
MR.B4A

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

  • MR.B4A عنوان را به سورس اسلاید منوی زیبا در بیسیک فور اندروید تغییر داد

بایگانی شده

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

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

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