SOUI官方论坛

 找回密码
 立即注册
查看: 1158|回复: 1

启程输入法皮肤中的动画支持

[复制链接]
  • TA的每日心情
    奋斗
    2022-7-4 09:45
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    59

    主题

    588

    帖子

    5481

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    5481

    突出贡献优秀版主

    发表于 2019-10-27 21:46:37 | 显示全部楼层 |阅读模式
    启程输入法3.0支持简单的帧动画。
    所谓帧动画就是动画是一帧图片组成的,例如常见的GIF。不过启程输入法不魂使用GIF,主要是因为GIF边缘不可避免的会有锯齿,支持GIF效果不好。
    启程输入法支持APNG,APNG是类似GIF的一种动画格式,只是APNG有alpha通道,不会有GIF那样的锯齿。
    如果用户有一个apng动画图,把它加到uires.idx为<img><file name="apng_test" path="image\xxxx.apng"/></img>
    那么可以定义下面的skin
    <apng name="skin_apng" src="img:apng_test"/>
    此外启程输入法也支持将所有动画帧组合到一个PNG图中,使用一个pngx的skin对象来实现帧动画。
    假定有一个动画包含1-10帧,标记为A-J帧。如果每一帧的停留时间都是20MS,那么可以在skin表中用下面的skin来描述这个帧动画的skinobj对象。
    <pngx name="skin_pngx" src="img:ani_test" delay="20[10]"/> 其中img:ani_test是这个png图片在uires.idx的文件索引。
    其中delay属性是每一帧的延时,使用“,”分隔。如果连续2帧以上延时相同,则可以用[rep]来表示。例如上面20[10]等价于delay="20,20,20,20,20,20,20,20,20,20"
    上面介绍了如何定义一个支持动画的skinobj,要在界面里使用这个动画还需要一个窗口做为载体。
    启程输入法这这个载体就是apngPlayer。
    例如:
    1.     <apngPlayer pos="-0,-0" offset="-1,-1" size="@dim/apng_width,@dim/apng_high" skin="apng_haha" extend="@dim/logo_extend_left,@dim/logo_extend_top,@dim/logo_extend_right,@dim/logo_extend_bottom" />
    复制代码
    布局属性和其它窗口一样,只要符合SOUI的布局规则就可以了。要播放一个动画,只需要使用skin属性来引用上面定义的apng或者pngx对象即可。

  • TA的每日心情
    开心
    昨天 09:41
  • 签到天数: 941 天

    [LV.10]以坛为家III

    580

    主题

    1340

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    28758
    发表于 2019-11-19 09:19:14 | 显示全部楼层
    谢谢楼主分享,可以实现酷炫的输入法效果了
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛

    GMT+8, 2024-4-27 02:23

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表