Corona手游教程之widget:ProgressView篇

通常为了节省内存,我们通过ImageSheet来创建进度条(progressView),进度条也不支持伸缩。我们创建进度条的方式如下:

widget.newProgressView( options )

options的公共字段包括如下:

  • id:(可选)一个赋予progressView的标识字符串,默认为default_progressView
  • x, y:(可选)widget的位置坐标的x和y
  • left, top:(可选)左上角的坐标
  • width:进度条的总长度
  • isAnimated:(可选)如果改变进度值是需要有动画就设置为true,如果希望改变立即发生就设置false或省略
  • fillXOffset, fillYOffset:(可选)设置垂直和水平方向上的偏移,默认值都是0

外观定制

进度条控件可以用一个imageSheet来进行可视化定制。正如下面例子所示,6帧就可以拼出一个外框和一个内部填充条。外框包括左边帽子(红色),中间区域(绿色),右边帽子(黄色)。内部填充区域,由于一个左帽子(橘色),中间区域(蓝色),和一个右边帽子(紫色)组成。

根据进度条的长度,外框帽子保持在ImageSheet中的尺寸,而中间帧(绿色)延伸来填充中间的长度。当进度被设置为任何大于0.0的值时,内部的左帽子和右帽子就会变得可见。然后,根据当前的百分比,中间填充区域(蓝)会眼神填充在两个内部帽子中间。

options的自定义外观字段如下:

  • sheet:用于进度条的ImageSheet
  • fillOuterLeftFrame:外部左帽子的帧序号
  • fillOuterMiddleFrame:外部中间区域的帧序号
  • fullOuterRightFrame:外部右帽子的帧序号
  • fillOuterWidth, fillOuterHeight: 外框的每一帧的宽度和高度。外框的帧都应该共享相同的宽度和高度
  • fillInnerLeftFrame:内部左帽子的帧序号
  • fillInnerMiddleFrame:内部中间区域的帧序号
  • fillInnerRightFrame:内部右帽子的帧序号
  • fillWidth, fillHeight:内区的每一帧的宽度和高度。所以内区的帧都应该共享相同的宽度和高度

对象方法

  1. object:setProgress()
  2. object:getProgress()
  3. object:resizeView()

使用举例

1 创建默认进度条

local widget = require( "widget" )

-- Create the widget
local progressView = widget.newProgressView
{
    left = 50,
    top = 200,
    width = 220,
    isAnimated = true
}

-- Set the progress to 50%
progressView:setProgress( 0.5 )

2 创建个性化进度条(自定义ImageSheet)

local widget = require( "widget" )

-- Image sheet options and declaration
local options = {
    width = 64,
    height = 64,
    numFrames = 6,
    sheetContentWidth = 384,
    sheetContentHeight = 64
}
local progressSheet = graphics.newImageSheet( "progressSheet.png", options )

-- Create the widget
local progressView = widget.newProgressView
{
    sheet = progressSheet,
    fillOuterLeftFrame = 1,
    fillOuterMiddleFrame = 2,
    fillOuterRightFrame = 3,
    fillOuterWidth = 64,
    fillOuterHeight = 64,
    fillInnerLeftFrame = 4,
    fillInnerMiddleFrame = 5,
    fillInnerRightFrame = 6,
    fillWidth = 64,
    fillHeight = 64,
    left = 50,
    top = 200,
    width = 220,
    isAnimated = true
}

-- Set the progress to 50%
progressView:setProgress( 0.5 )
时间: 2024-07-28 21:53:25

Corona手游教程之widget:ProgressView篇的相关文章

Corona手游教程之widget:Slider篇

废话不多说,同Corona SDK其他widget一样,出于节约内存考虑定制化的slider也需要使用ImageSheet,并且不可以伸缩(scale)或通过.width或.height属性改变宽度和高度. 我们创建一个slider的基本分方法是: widget.newSlider( options ) options的公共参数为: id:(可选)一个赋予slider的可选字符串标识.默认值为"widget_slider" x, y:(可选)origin的坐标 left, top:(可

Corona手游教程之widget:PickerWheel篇

首先什么是pickerWheel,如下图所示: 这是移动设备上交互创新的典型控件,非常适合触屏进行选择,对应PC上的下拉框. 在Corona中pickerWheel被设定为320X222像素大小.我们可以使用默认样式或定制化的pickerWheel.另外,请注意列的总宽度实际是280像素,因为要扣除左右两边的20像素边框大小. 为了节约内存,pickerWheel在定制化的时候同样使用Image Sheet.pickerWheel不支持对其宽度和高度进行伸缩(scale)或改变其.width或h

Corona手游教程之widget:Button篇

在corona sdk里,创建界面交互元素widget,非常方便灵活,并且具备极强的可定制性. 我们创建按钮使用如下代码: widget.newButton( options ) 我们有多种方式来创建按钮,不管哪一种,options都可以包含的公共字段如下: id:(可选)一个关联到此按钮的可选的字符串标识,默认为”widget_button“ x, y:(可选)origin坐标 left, top:(可选)左上角坐标 isEnable:是否启用,默认为true.通过button:setEnab

Tkinter教程之Text(2)篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811347 '''Tkinter教程之Text(2)篇''''''6.使用tag来指定文本的属性'''#创建一个指定背景颜色的TAG# -*- coding: cp936 -*-from Tkinter import *root = Tk()t = Text(root)# 创建一个TAG,其前景色为红色t.tag_config('a',foreground = 'red')# 使用TAG '

Tkinter教程之Text(1)篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811343 '''Tkinter教程之Text篇(1)''''''1.创建第一个Text'''from Tkinter import *root = Tk()t = Text(root)t.pack()root.mainloop()#root中含有一Text控件,可以在这个控件内输入文本,可以使用Ctrl+C/V向Text内添加剪切板上的内容(文本),不接受Ctrl+Z执行操作'''2.向T

谷歌移动UI框架Flutter教程之Widget

引言 在之间我已经介绍了关于Flutter的下载安装以及配置,还有开发工具Android Studio的配置,还不知道的同学可以看看我这篇博客--谷歌移动UI框架Flutter入门.这里为什么非要用Android Studio,我可以解释一下.Android Studio是Google的亲儿子,由谷歌一手开发,而Flutter也是谷歌推出的技术,所以在支持和兼容问题上,Android Studio是非常有优势的.老话说得好,肥水不流外人田,谷歌内部肯定是将Android Studio对Flutt

# IT明星不是梦 # WIFI模块开发教程之W600连云篇1:onenet三色灯项目小程序篇②

前言 本文研究如何使用小程序连接云平台,进而控制上一节中连接到onenet云平台的RGB三色灯设备. 一.理论基础 1.先睹为快 视频地址:https://www.ixigua.com/i6806304062091297292/ 2.功能点简述 小程序开机页面 小程序界面布局 小程序访问onenet接口 小程序3秒刷新数据状态 小程序控制弹出编辑框设置房间号 小程序调用storage接口存取数据 二.使用实例 1.云端创建产品 接下来咱们进入正题,首先需要在云端创建一个产品,步骤如下: 创建产品

WIFI模块开发教程之W600网络篇1:AP模式下TCP Client通信

前言 本文研究如何在AP模式下进行TCP Client通信,所谓AP模式是说模块起来一个softAP热点,可以供其他WIFI设备连接,当其他设备连接成功后,另WIFI模块作为客户端,局域网中其他设备作为服务端进行TCP数据通信. 一.理论基础 本节要处理的有两个问题,其一是如何利用RT_Thread起来一个softAP,其二是如何使用Socket套接字编程搞定TCP Client程序编写. 1.模块开启SoftAP 模块需要起来一个名字为sand,密码为12345678的热点,RT_Thread

WIFI模块开发教程之W600网络篇2:AP模式下TCP Server通信

前言 本文研究如何在AP模式下进行TCP Server通信,所谓AP模式是说模块起来一个softAP热点,可以供其他WIFI设备连接,当其他设备连接成功后,另WIFI模块作为服务端,等待局域网中其他客户端连接后通信. 一. 理论基础 本节要处理的有两个问题,其一是如何利用RT_Thread连接路由器,其二是如何使用Socket套接字编程搞定TCP Server程序编写. 1.连接路由器 模块需要开启station,并且连接到一个路由器,RT_Thread中只需要调用wlan.mgnt.h中的函数