• 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 )
  • 相关阅读:
    贪心算法与动态规划
    Linux重要目录结构
    博客园添加目录索引
    冒泡排序&插入排序&其他排序
    Linux下部署自己写的Web项目
    Java算法入门-数组&链表&队列
    Java集合-数据结构之栈、队列、数组、链表和红黑树
    Java集合-单例模式斗地主&Collections类的shuffle方法了解
    什么是反向代理服务器
    Linux信号处理
  • 原文地址:https://www.cnblogs.com/leezj/p/4241817.html
Copyright © 2020-2023  润新知