B4X编程语言:B4X控件方法汇总

1、AddNode、AddView方法

AddNode (Node As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) ' B4J控件

AddView (View As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) ' B4J的B4XView

AddView (View As android.scence.View,Left As Int,Top As Int,Width As Int,Height As Int) ' B4A控件

向控件内添加视图控件,用于容器类控件。

BAJ:Pane

B4A:Activity、Panel

示例:

Pane1.AddNode(Button1,10,10,100,30)

Pane1.As(B4XView).AddView(Button1,10,10,100,30)

Panel1.AddView(Button1,10dip,10dip,100dip,30dip)

2、As方法

As(Type As Object)

将对象转换为另一个类型的对象,控件的As方法可以使控件能够使用自己没有的另一个类型控件的属性或方法。

示例:

将Button1顺时针旋转10度

Button1.As(B4XView).Rotation=10

3、BringToFront和SendToBack方法

这两个方法都是更改控件视图的Z顺序方法。

BringToFront是将控件放到最前面,也就是放到最顶层以免被其它层遮挡。

SendToBack正好相反,是将控件向后放,以让其它控件在前面。

我们可以利用这两个方法向同一个容器内同一个位置添加多个相同大小的视图,需要时调到前面,不需要时放到后面隐藏。

示例:

Pane2.As(B4XView).BringToFront ' B4J控件

Pane2.As(B4XView).SendToBack ' B4J控件

Panel2.BringToFront ' B4A控件

Panel2..SendToBack ' B4A控件

4、GetNode、GetView方法

GetNode(Index As Int) As Node ' B4J控件

GetView(Index As Int) As B4XView ' B4J、B4A的B4XView

GetView(Index As Int) As View ' B4A控件

根据控件内的视图索引返回一个视图,B4J:返回Node,B4A:返回View,B4XView:返回 B4XView。

该方法主要用于容器类控件。BAJ:Pane;B4A:Activity、Panel。

示例:

Pane1.GetNode(0).As(B4XView).Color=xui.Color_Blue ' B4J控件

Pane1.As(B4XView).GetView(0).Color=xui.Color_Blue ' B4J控件

Panel1.GetView(0).Color=Colors.Blue ' B4A控件

5、GetAllViewsRecursive方法

GetAllViewsRecursive As IterableList

获取并返回控件内的所有子控件的列表,包括子控件内的子控件。terableList是可迭代列表。

B4J:返回Nodes列表

B4A:返回Views列表

B4XView:返回B4XViews列表

该方法常用于容器类控件。BAJ:Pane,B4A:Activity、Panel。

示例:

For Each v As Node In Pane1.GetAllViewsRecursive ' B4J

If v is Label Then

v.Alpha=0.8

End If

Next

For Each v As B4XView In Pane1.GetAllViewsRecursive ' B4J

......

Next

For Each v As View In Panel1.GetAllViewsRecursive ' B4A

......

Next

6、GetBitmap、GetImage方法

GetBitmap As B4XBitmap ' B4A

GetImage As Image ' B4J的ImageView控件

返回控件的图像,在B4J中用于ImageView控件,在B4A中用于设置了背景图像的控件。

示例:

Dim Image1 as Image=Label1.As(B4XView).GetBitmap

Dim Image1 as Image=ImageView1.GetImage

7、 Initialize方法

Initialize(EventName As String)

用于用代码声明的对象的初始化,在设计器中添加的控件不需要初始化。

EventName是为控件添加事件时要使用的控件名称如:Sub btn1_Click。

示例:

Dim btn1 As Button

btn1.Initialize("btn1")

8、LoadLayout 方法

LoadLayout(LayoutFile As String)

加载布局文件。在B4J用于Pane类型控件、在B4A用于Panel类型控件,布局文件必须放在项目的Files文件夹。

示例:

TabPane1.LoadLayout("MainPage","第一页")

9、RequestFocus 方法

将焦点移到该控件上,如:Button1.RequestFocus。

10、从容器移除控件方法

RemoveNodeFromParent ' B4J控件

RemoveViewFromParent ' B4J、B4A的B4XView

RemoveView ' B4A控件

将控件从其所在容器中移除,其中:RemoveNodeFromParent仅用于B4J。

示例:

Button1.RemoveNodeFromParent

Button1.RemoveViewFromParent

Button1.RemoveView

11、SetAlphaAnimated方法

SetAlphaAnimated(Duration As Int,Alpha As Double) ' B4J

SetAlphaAnimated(Duration As Int,Alpha As Float) ' B4A

为控件设置不透明度动画,在给定时间内从当前不透明度变为指定的不透明度。

Duration:以毫秒为单位的动画时间。

Alpha:不透明度,取值范围0-1。0为完全透明,1为完全不透明。

示例:

按下Button1时不透明度变为0.2,释放时复原

Private Sub Button1_MousePressed (EventData As MouseEvent)

Button1.SetAlphaAnimated(200,0.2)

End Sub

Private Sub Button1_MouseReleased (EventData As MouseEvent)

Button1.SetAlphaAnimated(200,1)

End Sub

12、SetLayoutAnimated方法

SetLayoutAnimated(Duration As Int,Left As Double,Top As Double,PrefWidth As Double,PrefHeight As Double) ' B4J

SetLayoutAnimated(Duration As Int,Left As Int,Top As Int,Width As Int,Height As Int) ' B4A

为控件设置布局动画,在给定时间内,从当前位置、大小变为指定位置、大小。

示例:

Button1.SetLayoutAnimated(200,0,50,150,40)

Button1.SetLayoutAnimated(200,0,50dip,150dip,40dip)

13、SetLayout方法

SetLayout(Left As Int,Top As Int,Width As Int,Height As Int) ' B4A

调整控件大小和布局,仅用于B4A控件。

示例:

Button1.SetLayout(10dip,50dip,150dip,40dip)

14、SetColorAndBorder方法

SetColorAndBorder(BackgroundColor As Int,BorderWidth As Dopuble,BorderColor As Int,BorderComerRadius As Int)

设置控件背景色、边框颜色、边框粗细、边框圆角半径。4A的Int数据要加dip。

示例:

Label1.As(B4XView).SetColorAndBorder(xui.Color_Cyan,1,xui.Color_Blue,5)

15、SetRotationAnimated方法

SetRotationAnimated(Duration As Int,Degree As Double)

为控件设置旋转动画,在给定时间内,以控件中心为圆心,从当前角度旋转到给定角度。

Duration:以毫秒为单位的动画时间。

Degree:旋转角度,正值顺时针旋转,负值逆时针旋转。

示例:

Button1.As(B4XView).SetRotationAnimated(1000,-20)

16、SetSelection方法

SetSelection(Start As Int,Length As Int)

选中控件中指定位置和长度的文本。

B4J:用于TextField、TextArea

B4A:用于EditText

示例:

TextField1.SetSelection(1,5)

EditText1.SetSelection(1,5)

17、SetTextAlignment方法

SetTextAlignment(Vertical As String,Horizontal As String)

设置控件文本的对齐方式。对齐方式选项:

Vertical:TOP、CENTER、BOTTOM

Horizontal:LEFT、CENTER、RIGHT

示例:

Label1.As(B4XView).SetTextAlignment("CENTER","LEFT")

18、SetColorAnimated方法

SetColorAnimated(Duration As Int,FromColor As Int,ToColor As Int)

设置控件背景颜色动画,在给定时间内背景颜色从FromColor渐变到ToColor。

示例:

Button1.As(B4XView).SetColorAnimated(200,xui.Color_Black,xui.Color_LightGray) ' B4J控件

Label1.SetColorAnimated(200,xui.Color_Black,xui.Color_LightGray) ' B4A控件

19、SetTextColorAnimated方法

SetTextColorAnimated(Duration As Int,ToColor As Int) ' 仅B4A控件

设置控件文本颜色动画,在给定时间内,控件文本从当前颜色渐变为给定颜色ToColor,仅用于B4A。

示例:

Label1.SetTextColorAnimated(200,xui.Color_Cyan)

20、SetTextSizeAnimated方法

SetTextSizeAnimated(Duration As Int,TextSize As Double) ' B4J控件

SetTextSizeAnimated(Duration As Int,TextSize As Float) ' B4A控件

设置控件文本大小动画,在给定时间内,文本字体从当前大小变为指定大小。

示例:

Label1.As(B4XView).SetTextSizeAnimated(200,20) ' B4J

Label1.SetTextSizeAnimated(200,20) ' B4A

21、SetVisibleAnimated方法

SetVisibleAnimated(Duration As Int,Visible As Boolean)

设置控件可见性动画,在给定时间内,控件从可见渐变为不可见,或从不可见渐变为可见。

Duration:以毫秒为单位的动画时间。

True:由不可见渐变为可见。

False:由可见渐变为不可见。

示例:

Label1.As(B4XView).SetVisibleAnimated(300,True) ' B4J

Label1.SetVisibleAnimated(300,True) ' B4A

22、 SetSize方法

SetSize(Width As Double,Height As Double) ' 仅B4J

设置控件大小,设计器定义的控件在B4XPage_Created或AppStart例程中不起作用。

示例:

Button1.SetSize(150,50)

23、SelectAll方法

SelectAll用于选中控件中的所有文本

B4J:用于TextField、TextArea

B4A:用于EditText

24、 Snapshot方法

Snapshot As B4XBitmap

捕获控件的外观并返回所渲染的图像。

示例:

Dim Image1 As Image=Label1.Snapshot ' B4J控件

Dim Image1 As Image=Label1.As(B4XView).Snapshot ' B4A控件

ImageView1.SetImage(Image1)

25、Snapshot2方法

Snapshot2(BackgroundColor As javafx.scence.paint.Paint) As Image ' 仅B4J控件

类似Snapshot,但可以设置图像的背景颜色。只对透明背景色的控件有效。

示例:

Dim Image1 As Image=Label1.Snapshot2(fx.Colors.Cyan)

ImageView1.SetImage(Image1)

相关推荐
蒙娜丽宁7 分钟前
【人工智能】用Python构建高效的自动化数据标注工具:从理论到实现
开发语言·python·自动化
材料苦逼不会梦到计算机白富美9 分钟前
go高性能单机缓存项目
开发语言·缓存·golang
快乐点吧23 分钟前
【前端面试】前端工程化
前端·面试·职场和发展
街尾杂货店&26 分钟前
webpack说明
前端·webpack·node.js
我是唐赢30 分钟前
微信小程序混入Behavior,实现Vue mixins同样功能
javascript·vue.js·微信小程序
知忆_IS32 分钟前
【GIS教程】使用GDAL-Python将tif转为COG并在ArcGIS Js前端加载-附完整代码
前端·javascript·arcgis
忘却的纪念36 分钟前
基于SpringBoot的嗨玩旅游网站:一站式旅游信息服务平台的设计与实现
java·开发语言·spring boot·后端·毕业设计·旅游
Domain-zhuo40 分钟前
如何理解React State不可变性的原则
前端·javascript·react native·react.js·前端框架·ecmascript
开心工作室_kaic41 分钟前
springboot422甘肃旅游服务平台代码-(论文+源码)_kaic
前端·spring boot·旅游