手机端刮刮乐效果组件ScratchView(android)

时间:2021-10-22 14:44:04

先展示一下效果:

手机端刮刮乐效果组件ScratchView(android) 手机端刮刮乐效果组件ScratchView(android) 手机端刮刮乐效果组件ScratchView(android) 手机端刮刮乐效果组件ScratchView(android)

如何实现:

1、下载ScratchView组件包:

 

2、编码实现:

#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region


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 ScratchImageView1 As ScratchImageView
	Private tvList As List
	Private Label1 As Label
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("Layout3")
	
	
	Dim bmp As Bitmap
	bmp.Initialize(File.DirAssets,"6343909_191220566100_2.png")
	Dim d As BitmapDrawable
	d.Initialize(bmp)
	ScratchImageView1.ImageDrawable = d
	
End Sub

Sub Activity_Resume
	

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub ScratchImageView1_onRevealed()
	Log($"ScratchImageView1_onRevealed"$)
End Sub
Sub ScratchImageView1_PercentRevealed(percent As Double)
	Log($"ScratchImageView1_PercentRevealed(${percent})"$)
End Sub

Sub ScratchText_PercentRevealed(percent As Double)
	Log($"ScratchImageView1_PercentRevealed(${percent})"$)
End Sub

Sub ScratchText_onRevealed()
	Log($"ScratchText_onRevealed"$)		
	Dim stv As ScratchTextView = Sender
	Dim amount As Int = stv.Tag
	Label1.Text = "$"&amount
End Sub

Sub ScratchText_onScratching(Scratched As Boolean)
	Log($"ScratchText_onScratching"$)
	Dim stv As ScratchTextView = Sender
	For i = 0 To tvList.Size-1
		Dim s As ScratchTextView = tvList.Get(i)
		If s <> stv Then
			s.Visible = False
		End If
	Next
	
End Sub