本文的目标

使用配置xml实现下面的结果

布局

整体采用水平布局,左边显示文字区域设置为垂直布局。

lets go

stage 1

创建一个空白窗体,并设置为半透明;同时,使得整个窗口可以移动,则 将caption填充整个窗口。代码如下

<?xml version="1.0" encoding="UTF-8"?>
<Window size="600,400" caption="0,0,0,400" shadowattached="false" roundcorner="4,4" >
<HBox bkcolor="bk_lightcolor_trans_50" height="stretch" width="stretch" >
</HBox>
</Window>

其中,bk_lightcolor_trans_50的定义如下

<TextColor name="bk_lightcolor_trans_50" value="#9f101010" />

此时,效果如下(半透明窗口)

stage 2

  • 右侧显示图片,用VBox代替,载一张图。
  • xml的代码如下
<?xml version="1.0" encoding="UTF-8"?>
<Window size="1280,620" caption="0,0,0,620" shadowattached="false" >
<HBox bkcolor="bk_lightcolor_trans_50" height="stretch" width="stretch" > <!--中间左边显示文字部分-->
<VBox height="auto" width="889" >
</VBox> <!--右侧显示图片区域-->
<VBox class="bk_image_diamond_419x637"/>
</HBox>
</Window>
  • 效果如下

其中,bk_image_diamond_419x637的定义如下

 <Class name="bk_image_diamond_419x637" width="419" height="647" bkimage="../bk_image/bk_diamond.png"/>

stage 3

  • 配置左侧显示文字,使用垂直布局VBox承载3个控件(从上到下):title label、subtitle label 和 内容richedit。

为什么内容不用label? 没有找到label可以设置换行显示的属性配置。如果您知道如何配置Label多行显示和自动换行,欢迎留言交流。

  • xml代码如下
<?xml version="1.0" encoding="UTF-8"?>
<Window size="1280,620" caption="0,0,0,620" shadowattached="false" >
<HBox bkcolor="bk_lightcolor_trans_50" height="stretch" width="stretch" > <!--中间左边显示文字部分-->
<VBox height="auto" width="889" >
<Label class="label_tittle" text="GTA在线模式" margin="10,10,10,10" />
<Label class="label_subtitle" text="本周展台载具:贝飞特斯特林 GT" margin="10,5,5,5" />
<RichEdit class="label_content" text="速访名钻假日赌场大厅转动幸运轮盘,即有机会带走GTA游戏币、声望值、服装和各种神秘奖品。本周站台载具是贝飞特斯特林 GT,这是一款德国经典之作,其引擎盖下的强劲马力足以把您吓得瞬间迈入中年危机。"
multiline="true"
readonly="true"
margin="10,10,10,10"
width="stretch"
height="90"/>
</VBox> <!--右侧显示图片区域-->
<VBox class="bk_image_diamond_419x637"/>
</HBox>
</Window>

其中,label_tittlelabel_subtitlelabel_content的定义如下

<Class name="label_tittle" font="system_60" normaltextcolor="white"/>
<Class name="label_subtitle" font="system_30" normaltextcolor="white"/>
<Class name="label_content" font="system_23" normaltextcolor="white"/>

system_60system_30system_23定义如下:

<Font id="system_60" name="system" size="60"/>
<Font id="system_30" name="system" size="30"/>
<Font id="system_23" name="system" size="23"/>

其中,white的定义如下:

<TextColor name="white" value="#ffffffff"/>
  • 效果如下

目标效果

nim_duilib(16)之xml学习实战(GTAV加载窗口实现)的更多相关文章

  1. 深入java虚拟机学习 -- 类的加载机制(续)

    昨晚写 深入java虚拟机学习 -- 类的加载机制 都到1点半了,由于第二天还要工作,没有将上篇文章中的demo讲解写出来,今天抽时间补上昨晚的例子讲解. 这里我先把昨天的两份代码贴过来,重新看下: ...

  2. 【Java Web开发学习】Spring加载外部properties配置文件

    [Java Web开发学习]Spring加载外部properties配置文件 转载:https://www.cnblogs.com/yangchongxing/p/9136505.html 1.声明属 ...

  3. Android学习——Fragment静态加载

    从今天开始做一套安卓的学习笔记,开发环境是Android Studio,把学习过程中的知识和遇到的问题都写在这里,先从Fragment开始学起. Fragment概述 Fragment是Android ...

  4. 服务器启动时Webapp的web.xml中配置的加载顺序

    一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...

  5. 服务器启动时Webapp的web.xml中配置的加载顺序(转载)

    一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...

  6. 详解web.xml中元素的加载顺序

    一.背景 最近在项目中遇到了启动时出现加载service注解注入失败的问题,后来经过不懈努力发现了是因为web.xml配置文件中的元素加载顺序导致的,那么就抽空研究了以下tomcat在启动时web.x ...

  7. 从高德 SDK 学习 Android 动态加载资源

    前不久跑去折腾高德 SDK 中的 HUD 功能,相信用过该功能的用户都知道 HUD 界面上的导航转向图标是动态变化的.从高德官方导航 API 文档中 AMapNaviGuide 类的描述可知,导航转向 ...

  8. JS学习之动态加载script和style样式

    前提:我们可以把一个网页里面的内容理解为一个XML或者说网页本身也就是一个XML文档,XML文档都有很特殊的象征:"标签"也叫"节点".我们都知道一个基本的网页 ...

  9. Cocos Creator学习六:加载/释放图片资源

    1.目的:学习加载图片资源.使用图片资源创建对象以及释放图片资源. 2.注意事项以及主要函数: ①注意事项:使用loadRes函数,资源必须放置在assets下的resources文件夹下(默认没有r ...

随机推荐

  1. Python基础笔记4

    模块 模块是一组Python代码的集合,一个.py文件就称之为一个模块(Module),按目录来组织模块称为包(Package).优点:提高了代码的可维护性:避免函数名和变量名冲突. mycompan ...

  2. 字符串String的trim()方法

    用来删除字符串两端的空白字符并返回,trim方法并不影响原来的字符串本身,它返回的是一个新的字符串 String a = "  Hello World  "; String b = ...

  3. 在 vscode.dev 中直接运行 Python !纯浏览器环境,无后端!

    其实有挺长一段时间没有写自己的 VS Code 插件了! 还是要感谢我们 DevDiv 组的 Flexible Friday 活动,让我可以在工作日研究自己感兴趣的项目. Flexible Frida ...

  4. binlog真的是银弹吗?有些时候也让人头疼

    大家好,我是架构摆渡人.这是实践经验系列的第三篇文章,这个系列会给大家分享很多在实际工作中有用的经验,如果有收获,还请分享给更多的朋友. binlog 用于记录用户对数据库操作的SQL语句信息,同时主 ...

  5. day07 Linux配置修改

    day07 Linux配置修改 昨日回顾 1.系统目录 /etc :系统配置目录 /bin-> /usr/bin :保存常用命令的目录 /root :超级管理员目录 /home :普通管理员目录 ...

  6. JDBC(1):JDBC介绍

    一,JDBC介绍 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC.这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加 ...

  7. 商城项目的购物车模块的实现------通过session实现

    1.新建购物车的实体类Cart public class Cart implements java.io.Serializable{ private Shangpin shangpin;//存放商品实 ...

  8. 智龙开发板搭建llsp环境

    智龙开发板搭建llsp(linux+lighttpd+sqlite3+php)环境 1. 准备 1. 智龙开发板V3 2. 软件编译环境:VirtualBox6+CentOS6.10-i386.min ...

  9. 【Spark】【RDD】从内存(集合)创建RDD

    val list = List(1,2,3) var rdd = sc.parallelize(list) rdd.partitions.size 通过调用SparkContext的paralleli ...

  10. .net core容器添加时区和libgdi+和下载加速

    国内.net core镜像下载加速 比如对于mcr.microsoft.com/dotnet/core/aspnet:3.1,下载是走的azure全球cdn,国内访问很慢. 国内访问可以把mcr.mi ...