رفتن به مطلب

سوال

سلام دوستان

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

براتون پیش اومده 2 تا عکس برای یه دکمه تعریف میکنید و میگید بعد از کلیک تصویر عوض بشه و وارد فلان اکتیویتی بشه من اینوبلدم اما برای تغییر رنگ پنل روی این کد نمیتونم

Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.

Private Panel1 As Panel
Dim bd As BitmapDrawable
Dim r As Reflector 
Dim scvMain As ScrollView
Dim PanelHeight,sent,sent2 As Int
Dim Bitmap1,Bitmap2 As Bitmap
Private Button1 As Button
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("turism")
bd.Initialize(LoadBitmap(File.DirAssets,"background_pattern.png"))
   r.Target = bd
r.RunMethod3("setTileModeXY","REPEAT", "android.graphics.Shader$TileMode", _
"REPEAT", "android.graphics.Shader$TileMode")
Panel1.Background = bd
Bitmap1.Initialize(File.DirAssets,"1.png")
   sc


End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub
Sub sc
scvMain.Initialize(500)
Activity.AddView(scvMain, 10%x,50%y, 80%x, 50%y)
Dim b1 As Bitmap

		''''''avali''''''
	Dim pnltest As Panel
       Dim lblTest , lblTest1 , lblTest2 , lblTest3 As Label
	Dim ImageView1 , ImageView2 ,ImageView3 As ImageView
       pnltest.Initialize("pnlTest1")
       scvMain.Panel.AddView(pnltest,0,PanelHeight,100%x,80dip)
       lblTest.Initialize("lblTest")       ''لیبل برای متن اول''
	pnltest.AddView(lblTest,100%x-99%x, 30dip, 70%x, 50dip)
       lblTest.TextSize=14
       lblTest.TextColor = Colors.White
       lblTest.Text="متن شماره"&""
	lblTest.Gravity=Gravity.CENTER_HORIZONTAL
	lblTest2.Initialize("lblTest")  ''لیبل برای کشیدن خط زیر هر قسمت''
	b1.Initialize(File.DirAssets,"list_item_back.png")
	pnltest.SetBackgroundImage(b1)
	ImageView1.Initialize("Imageview1")    ''تصویر برای دکمه اول''
	pnltest.AddView(ImageView1,61%x-17dip,10dip,70dip,60dip)
	ImageView1.Bitmap=Bitmap1
	PanelHeight=PanelHeight+80dip
	scvMain.Panel.Height=PanelHeight
end sub

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

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

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

  • 0

سلام و درود

تعریف پنل رو توی Sub Globals انجام بدید ( طبق کدهای خودتون مثال میزنم ) :

Dim pnltest As Panel

چون روی رخداد sc تعریف کردید که:

pnltest.Initialize("pnlTest1")

پس میاییم میگیم:

Sub pnlTest1_Touch (Action As Int, X As Float, Y As Float)
   Select Action
   Case  Activity.ACTION_DOWN
   pnltest.Color = Colors.Red
   Case  Activity.ACTION_UP
   pnltest.Color = Colors.Blue
   End Select
End Sub

رنگ بندی و اتفاقات بعدیش رو دیگه به سلیقه و نظر خودتونه.

موفق باشید

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

  • 0

سلام

نمیدونم منظورتو درست فهمیدم یا ن

فک کنم منظورت تاچ رو پنل باشه

ُSub Globals
Dim panel1 as panel
End sub

Sub panel1_Touch (Action As Int, X As Float, Y As Float)
if Action = 1 Then
panel1.color = colors.ARGB(50,0,70,0)
End if
End Sub

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

  • 0

سلام مهدی جان کد شما جواب داد ممنون هم از شما هم از محمد جان

داداش مهدی این کد یه مشکلی داشت این بود که وقتی پنل ها تعدادش زیاد میشد و اسکرول میخورد وقتی میخواستی بالا یا پایین بری رنگ case اول ثابت میموند روی پنل تا دوباره روش کلیک بشه من

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

Sub pnlTest6_Click

pnltest.Color = Colors.RGB(50,150,229)

Activity.Finish

StartActivity(Turism1)

End Sub

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

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