首页 > 编程语言 >B4X编程语言:B4X控件的背景色属性(Color/Background)

B4X编程语言:B4X控件的背景色属性(Color/Background)

时间:2024-12-03 13:30:37浏览次数:12  
标签:控件 Color Label1 B4X Int Colors Background

         B4A控件的背景色属性有两个:Color和Background,B4XView类型控件无论在B4A还是B4J,都只有Color属性。B4J其它控件没有背景色属性,要获取和设置其背景色属性,需使用As(B4XView)方法。

        一、Color属性

        Color属性的值类型是 Int 型。
        对于B4A的非B4XView类型控件:用于设置控件的背景颜色(只写)。因为是只写属性,要想获取控件背景色需使用这样的语句:Dim Color1 As Int=Label1.As(B4XView).Color。
        对于B4A、B4J的B4XView类型控件:用于设置或返回控件的背景颜色(读写)。其获取控件背景色的语句:Dim Color1 As Int=Label1.Color。

        设置控件的背景色有以下几种方法:

        1、使用B4A的Colors对象设置:
        适用于B4A的非B4XView类型控件。B4A的Colors对象提供了Black、Blue、Transparent等12种常用色以及ARGB和RGB函数,ARGB比RGB多了一个参数Alpha(不透明度),取值范围为0-255,其中0是完全透明,255是完全不透明。 语法为:
        Colors.ARGB(Alpha As Int,R As Int,G As Int,B As Int)。
        可以类似下列语句设置控件的背景色属性:
        Label1.Color=Colors.Green
        Label1.Color=Colors.ARGB(20,125,125,255)
        Label1.Color=Colors.RGB(125,125,255)

        2、使用XUI对象设置:
        适用于所有具有Color属性的控件。XUI对象是跨平台的,在B4A和B4J中使用方法相同。它提供了和B4A的Colors对象相同的常用色及ARGB和RGB函数,ARGB函数语法为:xui.Color_ARGB(Alpha As Int,R As Int,G As Int,B As Int)。
         可以类似下列语句设置控件的背景色属性:
        Label1.Color=xui.Color_Green
        Label1.Color=xui.Color_ARGB(20,255,122,122)
        Label1.Color=xui.Color_RGB(125,125,255)

        3、使用JFX对象设置:
        适用于B4J的B4XView类型控件。B4J的JFX也提供了Colors对象,和B4A的Colors对象有一样的常用色及ARGB和RGB函数,但其返回的值是 Paint类型,需要将该返回值转换为Int类型才能使用,例如:
        Label1.Color=xui.PaintOrColorToColor(fx.Colors.Green)

        4、使用十六进制整数颜色值设置:
        适用于所有具有Color属性的控件。B4X中用十六进制整数设置颜色,需要在数值前加0x前缀。例如:
        Label1.Color=0XFFDCDCDC

        5、使用值传递设置:
         适用于所有具有Color属性的控件。例如:
        Label2.Color=Label1.Color

        备注:
        在B4J中,Color属性返回的是有符号十进制整数,虽然使用该值也能正确设置控件背景色,但不常用,我们一般还是用十六进制整数来设置(方便查找相应颜色的对应数值)。
        对于没有Color属性的控件可使用As转换,例如:
        Dim Color1 As Int=Label1.As(B4XView).Color
        Button1.As(B4XView).Color=xui.Color_Green。

        二、Background属性

        Background属性是GradientDrawable类型(Android的可定制渐变形状类型),仅B4A的非B4XView类型控件具有此属性。该属性用于设置或返回控件的背景渐变形状。
        设置背景渐变形状的语法:
        控件.Initialize(渐变方向,颜色值数组)
        渐变方向有:LEFT-RIGHT、RIGHT-LEFT、TOP-BOTTOM、BOTTOM-TOP、TR-BL(右顶-左底)、BL-TR(左底-右顶)、TL-BR(左顶-右底)、BR-TL(右底-左顶)8个选项。
        颜色值数组必须大于等于2,也就是至少提供2个颜色值。

       1、 获取控件的Background属性值示例:
        Dim gd As GradientDrawable=Label1.Background

        2、设置控件的Background属性值示例:
        Dim gd As GradientDrawable
        Dim ar(2) As Int
        ar(0)=Colors.Blue
        ar(1)=Colors.White 
        gd.Initialize("BOTTOM_TOP",ar)
        Label1.Background=gd

        或使用下面语句:
        Dim gd As GradientDrawable
       gd.Initialize("BOTTOM_TOP",Array as Int(Colors.Blue,Colors.White,Colors.Green))
        Label1.Background=gd

        备注:       
        1、每个不同尺寸大小的控件在给其Background赋值前,必须先将已定义的GradientDrawable型变量(如:gd)初始化一次。
        如上例:如果再将gd变量给Button1的Background赋值,则需添加如下语句:
        gd.Initialize("BOTTOM_TOP",ar)
        Button1.Background=gd
        2、不能用这样的语句:Button1.Background=Label1.Background
        这样如果Button1尺寸比Label1大,Button1会渲染不全,只能渲染Label1大小的区域。
        

标签:控件,Color,Label1,B4X,Int,Colors,Background
From: https://blog.csdn.net/yshzsl1968/article/details/144197187

相关文章

  • B4X编程语言:B4X控件的字体属性(Font / Typeface)
            除B4XView类型的控件外,B4A控件的字体属性是Typeface,B4J控件的字体属性是Font。B4XView类型的控件无论在B4A、B4J还是B4i中,其字体属性均是Font。    一、B4A控件的字体属性Typeface        Typeface属性用于设置或获取B4A控件文本字体,获取字......
  • B4X编程语言:B4A控件内容对齐方式属性Gravity详解
            Gravity属性用于设置控件的内容在控件内的对齐方式,使用Gravity属性可以对控件的内容进行灵活的对齐设置,以适应不同的界面布局需求。在B4A中,Label、Button、Imageview等控件均有Gravity属性。        Gravity属性如下:    LEFT:将内容左对齐。......
  • 界面控件DevExpress Blazor UI v24.1新版亮点:图表组件功能全面升级
    DevExpress BlazorUI组件使用了C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生BlazorUI组件(包括PivotGrid、调度程序、图表、数据编辑器和报表等)。DevExpress Blazor控件目前已经升级到v24.1版本了,此版本发布了全新升级了图......
  • DevExpress-独立使用的控件介绍-02
    XtraEditors库提供了只能独立使用的控件,即这些控件只能依附于其他控件配合使用,不能单独使用。这些控件包括:几种类型的列表控件、数据导航控件、滚动条和一个按钮控件,这些控件都是继承于BaseStyleControl,因此支持所有Dev控件共有的样式、外观与感觉、以及工具提示机制,为应用......
  • 如何给文字的color设置渐变
    在前端开发中,实现文字颜色渐变有多种方法,以下是几种常见且有效的方式:1.使用CSS线性渐变linear-gradient()这是最常用的方法,可以直接应用于文字。通过background-clip属性将背景裁剪到文本,并使用-webkit-background-clip:text;和color:transparent;使文本呈现渐变颜......
  • jQuery轻量级Lightbox插件-Colorbox
    演示       下载 ColorBox是一款功能强大的轻量级Jquery Lightbox插件。ColorBox支持图片展示、图片分组、幻灯片、行内样式和iframe内容。该lightbox插件的兼容性极好,可以兼容IE7+的IE浏览器。它的特点有:支持图片展示、图片分组、幻灯片、行内样式和ifram......
  • WPF+MVVM案例实战与特效(三十一)- 封装一个加载动画的自定义控件
    文章目录1、案例效果2、案例实现1、资源与文件创建2、自定义控件封装3、自定义控件使用4、总结1、案例效果2、案例实现在开发WPF应用程序时,我们常常需要一个灵活的加载动画控件,该控件可以根据窗口的大小自动调整其内部元素(如图片、边框和文本)的尺寸,并......
  • Winform窗体控件双向绑定数据模拟读写PLC数据
    1.用Modbus工具模拟PLC2.创建一个实体类点击查看代码internalclassData:INotifyPropertyChanged{ushort[]ushorts=newushort[10];publicushortD0{get=>ushorts[0];set{ushorts[0]=value;OnPropertyChanged(nameof(D0));}}publicushor......
  • 界面控件DevExpress WPF v24.2新功能预览 - 人工智能(AI)集成
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • 怎样去除iOS和Android中的输入URL地址的控件条呢?
    在iOS和Android中完全去除浏览器自带的地址栏是不可能的,除非你开发的是一个独立的应用程序,而不是在浏览器中运行的网页。如果你的目标是在Web应用中提供更沉浸式的体验,隐藏地址栏可以实现,但用户仍然可以通过下拉或其他操作重新显示地址栏。以下是一些方法可以尝试在你的......