运行截图
资源文件里面的资料
Main窗体代码如下
'
#Region Module Attributes
#FullScreen: False
#IncludeTitle: True
#ApplicationLabel: eCompass
#VersionCode: 1
#VersionName:
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region
'Activity module
Sub Process_Globals
Dim DestRect As Rect
Dim iDegrees, AngleStart, AngleEnd, AngleStep, AngleStep1 As Float
End Sub
Sub Globals
Dim btnRotate As Button
Dim imgCompass As ImageView
Dim Timer1 As Timer
Dim Canvas1 As Canvas '画布
Dim Bitmap1 As Bitmap
' Dim a As Animation
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("layMain")
'将在imgCompass上面画画
Canvas1.Initialize(imgCompass)
'矩形对象初始化
DestRect.Initialize(0dip, 0dip, 256dip, 256dip)
'载入目录资源的图片到图片对象Bitmap1
Bitmap1.Initialize(File.DirAssets, "compass.png")
'Degrees 角度
iDegrees = 0
'启动定时器
Timer1.Initialize("Timer1",100)
'Angle角度
AngleStep1=5
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
'旋转(Rotate )按钮点击时触发此事件
Sub btnRotate_Click
AngleEnd=AngleStart+45
AngleStep=AngleStep1
Timer1.Enabled=True
End Sub
'定时器事件
Sub Timer1_Tick
#Region 这些内容不必去关注
If iDegrees>=AngleEnd-AngleStep And AngleStep=AngleStep1 Then
AngleStep=AngleStep1/3
End If
iDegrees=iDegrees+AngleStep
If iDegrees>=AngleEnd Then
Timer1.Enabled=False
iDegrees=AngleEnd
AngleStart=AngleEnd
End If
#End Region 这些内容不必去关注
' 刚才DestRect.Initialize(0dip, 0dip, 256dip, 256dip)这句话的意思是,
'将在imgCompass对象的左边0dip,顶边0dip的位置画一个宽为256dip,高为256dip的矩形
'库 Core > 类 Canvas > 方法 DrawBitmapRotated (绘制位图旋转 )
'DrawBitmapRotated ( Bitmap1 As Bitmap, SrcRect As Rect, DestRect As Rect, Degrees As Float )
'Bitmap1 = 用哪个图片对象画图
'Bitmap1 - 将被绘制的位图的子集.如果为 Null(空)则完整绘制位图.
'DestRect - 将被绘制的位图矩形.
'Degrees - 位图旋转的角度度数(顺时针)
Canvas1.DrawBitmapRotated(Bitmap1,Null,DestRect,iDegrees)
'刷新显示刚才绘制的图片
imgCompass.Invalidate2(DestRect)
End Sub