时间 Time: 显示当前的时间,12:34x y //坐标属性,支持变量及表达式src //时间图片源,src=t.png,表示使用t_0.png、t_1.png、... t_9.png、t_dot.pngspace //时间图片的间隙,可以使用这个功能来对时间图片进行排版,使用正值时图片间距变大,这时可以将图片切小,节省内存。对于有投影的图片,将space写成负值,可以使投影重叠以节省空间日期 DateTime: 显示指定格式的日期format: 支持标准格式,新增农历: NNNN规范代码:1.<Time x="100" y="100" src="t.png" space="" /> 2.<DateTime x="100" y="100" format="MM/dd" color="#ffffff" size="50"/>标准格式:---------------------------------------------------------------年yyyy ->2014月M -> 9MM -> 09日M/d -> 9/6MM/dd -> 09/06星期E -> 周五EEEE -> 星期五时钟h ->9hh ->09分钟 m -> 7 mm -> 07 mmm -> 007 mmmm -> 000724小时kk:mm -> 13:34例子: yyyy-MM-dd h:mmaa -> 2014-12-24 9:08am M月d日 h:mmaa -> 9月6日 9:08am"---------------------------------------------------------------待测试:秒 mm-ss 农历 NNNN !?
2015年05月06日
byMI-谢
文本 Text: 显示指定格式的文字 x y //文字坐标,支持变量及表达式 color //文字颜色,#FFFFFF size //文字大小,30 text //文字 textExp //文字表达式,可以直接调用变量。textExp="'现在时间是'+#hour12+'点'" format //文字中显示变量数字,需要指定格式,用 %d 指定数字位置 paras //指定了format, 则在paras里指定 %d 对应的变量表达式,。多个变量表达式用"," 隔开 width //文字宽度,当文字超过指定宽度时,会被切掉。如果指定了多行显示,则会折行显示。如果指定了文字滚动,则会在指定的位置滚动显示文字 multiLine=ture/false(默认) //文字多行显示 marqueeSpeed //文字滚动速度,配合 width 使用 marqueeGap //滚动间隔,当文字显示完后,再次出现的间隔,默认为四个汉字的宽度 spacingMult //行距倍数 默认1 spacingAdd //行距增加量 默认0 align=left/center/right //对齐方式 alpha=0~255 //透明度 rotation(X,Y,Z) //旋转角度(不推荐 angle) txt_name.text_width //获取某文本txt_name的宽度,可以用来排版规范代码: <Text text="加入文字"/> <Text text="改变位置" x="540" y="960" align="center" /> <Text text="改变透明度" x="540" y="660" align="center" alpha="100"/> <Text text="改变大小、颜色" x="540" y="960" align="center" size="40" color="#ffffff"/> <Text textExp="'这是文字表达式,显示你想要引用的数值:' + #touch_x "/>
2015年05月06日
byMI-谢
壁纸 Wallpaper:引用系统设置的壁纸,不能指定 src 图片源可以有动画和其他属性 (同 Image )没有此元素,不显示壁纸可以有多个规范代码:<Wallpeper/>
2015年05月06日
byMI-谢
变量name // 定义变量名expression // 定义的表达式或常量 注意:字符串常量用单引号 'str123'type = number(默认)/string //定义为数值/字符串变量const = false(默认)/true* //true :在初始化时,只会计算一次,以后不会重新计算。threshold* //阈值触发 。当该变量值的变化超过设定的阈值时,可以触发命令。persist =false(默认) /true //变量持久化。ture : 如果没有重新赋值,那么该值将一直保存。无论解锁后重新锁定或者重新应用主题都不会改变。变量数组 VarsItem //定义数组元素expression //定义的表达式value //如果元素是常量,则用value指定常量值规范代码: <Var name="var_name" expression="ifelse(#touch_x,11,22)" type="number" const="true"/> <Var name="var2_name" expression="ifelse(#touch_x,'one','two')" type="string" const="true"/> <VarArray type="string"> <Vars> <Var name="var_format" index="1"/> <Var name="var2_format" index="2" const="true"/> </Vars> <Items> <Item expression="ifelse(#touch_x,'str1', 'str2')"/> <Item value="EEEE"/> <Item value="yyyy年"/> <Item value="MM月"/> <Item value="d日"/> </Items> </VarArray> 复制代码
2015年05月06日
byMI-谢
>> 数学运算: + - * / %>> 数学函数: sin, cos, tan, asin, acos, atan, sinh, cosh, sqrt(), abs(), min(), max().>> len(数字) // 取给定数字位数 len(1234)=4 digit(数字, 第几位) // 取给定数字在第几位 digit(12345, 2) = 4 注意:下标从右向左,并且从1开始 round() // 四舍五入取整 int() // 向下取整 eq(x, y) // x==y ? 1 : 0 ne(x, y) // x!=y ? 1 : 0 ge(x, y) // x>=y ? 1 : 0 gt(x, y) // x>y ? 1 : 0 le(x, y) // x<=y ? 1 : 0 lt(x, y) // x
2015年05月06日
byMI-谢
Unlocker:(Slider)unlocker.move_x 解锁部件在x方向的偏移unlocker.move_y 解锁部件在y方向的偏移unlocker.move_dist 解锁部件移动的距离unlocker.state 解锁部件的状态: 0 normal, 1 pressed, 2 reached新增滑动及解锁控件的endpoint状态变量 #end1.state 0: normal 1:pressed 2:reachedTouch:touch_x 当前触摸点的x坐标touch_ytouch_begin_x 按下屏幕时的初始x坐标touch_begin_ytouch_begin_time 按下屏幕时的时间时间:time 当前时间,longtime_sys 系统时间毫秒数year 年份month 月份(取值范围是0~11,0表示一月,1表示二月,以此类推)date 日期day_of_week 星期(1表示星期日,2表示星期一,等等)hour12 当前小时(12小时制)hour24 24小时制minute 分钟second 秒ampm 上下午 0:am 1:pmtime_format 0:12h 1:24hyear_lunar 农历年份year_lunar1864 用来计算天干地支month_lunar 农历月份 从1开始计month_lunar_leap 0/1 是否润月date_lunar 农历日期 从1开始计电量:battery_level 当前电量,1~100battery_state 0正常 1充电 2电量低 3已充满屏幕:screen_width 屏幕宽度screen_height 屏幕高度raw_screen_width 物理宽度(表示当前设备的屏幕分辨率,不受根节点screenWidth的影响)raw_screen_height 物理高度图片:image.actual_w 图片实际宽度image.actual_hactual_x actual_y //可获得部件在动画时的实际位置image.bmp_width 图片文件的宽度(不受裁切、缩放的影响,只根据src找到指定的图片,并检测该文件的宽度)image.bmp_height音乐:music_control.music_state // 0暂停 1播放@music_control.title // 引用歌名@music_control.artist // 引用歌手音量:volume_level 现在音量volume_level_old 调节之前的音量 取值: 1-15 根据二者比较判断是增大还是减小volume_type 0 通话音量 1 系统音量 2 电话铃声,短信铃声 3 音乐播放器音量 4 闹钟音量 5 通知音量 6 连接蓝牙时的通话音量 7 在某些国家强制的系统音量 8 DTMF音量 9 TTS音量 10 FM音量一般锁屏下,只能调(3音量播放器音量)volume_type>=0 表示正在调节音量,调节完毕后值为-1 可根据这个显示或隐藏音量显示Others:sms_unread_count 未读短信数call_missed_count 未接电话数@next_alarm_time 下一个闹钟时间frame_rate 当前屏幕帧率intercept_sys_touch 是否截获以后的触摸事件,避免被其他View捕获。例如在自由桌面widget中可以防止在widget上进行触摸操作时桌面滚动和进入编辑模式模式(状态):ring_mode 静音模式 0 silent, 1 vibrate, 2 normalwifi_state WiFi状态 0 disabled, 1 enabled, 2 problem, 3 half(intermediate)bluetooth_state 蓝牙状态 0 off, 1 on, 2 halfdata_state 数据状态 0 off, 1 onusb_mode USB模式 0 disconnected, 1 charge only, 2 storage, 3 intermediate文本:txt_name.text_width //获取某文本txt_name的宽度,可以用来排版
2015年05月06日
byMI-谢
自由桌面 scene基本框架:com.miui.home.freestyle/文件夹下: /skins 文件夹主要存放自由部件(png切图) /stage_images 文件夹主要存放场景图(壁纸) /tools 文件夹主要存放小工具(音乐插件等) /description.xml 描述文件,对自由桌面的宽高、类型的定义 description.xml 文件配置: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <scene name="xxx_name" width="1080"> <screen type="drift"/> <screen type="background"/> <screen type="foreground"/> <screen type="dock"/> </screen>- 自由桌面分为drift、background、foreground、dock四层。 可以将部件添加在: drift层 可随意移动,可点击; background层 不可移动,不可点击; foreground层 不可移动,可点击; dock层 跟随屏幕移动而移动,例如桌面底部拨号联系人图标。 通常会选择drift层。 - 添加 部件功能: 无功能:用户可以在自由桌面中为它添加功能。 打开APP:为部件预设打开指定的应用,但用户在自由桌面内也可以自由更改。 抽屉:打开所有应用列表。 快捷开关:与桌面快捷开关相同。 文件夹:将部件设置为文件夹功能。- 添加 tools小工具 - 每一个小工具都单独一个文件夹形式 放在tools文件夹下 - 每一个文件夹中的 manifest.xml,<Gadget>...</Gadget>代码编写 编辑器未更新!(*TODO) 用主题编辑器将此主题打开,点击“自由桌面编辑器”模块,进入编辑自由桌面。 添加 skins 自由部件 填写自由桌面宽度,主屏填写(0为第一屏;1为第二屏;2为第三瓶,以此类推) 添加 stage_images 背景图 选中drift层,选择“创建”在“场景图片”分类内,可以看到之前编辑好的背景图片,点击图片进行添加。 添加 部件 选择创建,在自由部件分类内选择要添加部件的图片,然后为它选择功能,有四种功能可供选择。 添加成功后 部件将出现在预览图中,预览图可以通过鼠标滚轮进行缩放,部件可以通过鼠标拖放来改变位置或直接在预览图下输入坐标。规范代码: <scene name="" width=""> <screen type="drift" width="" home=""> <sprite left="1000" top="1000" _name="" rotation="0.0" scale_x="0.0" scale_y="0.0" width="0" height="0" appearance="" function="mtz_gadget:tools\XXX" /> <sprite left="1000" top="1000" _name="" rotation="0.0" scale_x="0.0" scale_y="0.0" width="0" height="0" appearance="skins/XXX.png" function="" /> </screen> <screen type="background" width="" home=""> </screen> <screen type="foreground" width="" home=""> <sprite left="100" top="1000" _name="搜索" rotation="0.0" scale_x="0.0" scale_y="0.0" width="0" height="0" appearance="skins/XXX.png" function="app:com.android.quicksearchbox/.SearchActivity" /> </screen> <screen type="dock" width="" home=""> <!--打开应用--> <sprite left="1000" top="1000" _name="" rotation="0.0" scale_x="0.0" scale_y="0.0" width="0" height="0" appearance="skins/XXX.png" function="app:com.miui.weather2/.ActivityWeatherMain" /> <!--快捷开关--> <sprite left="1000" top="1000" _name="" rotation="0.0" scale_x="0.0" scale_y="0.0" width="0" height="0" appearance="skins/XXX.png" function="toggle:lock" /> <!--抽屉--> <sprite left="1000" top="1000" _name="" rotation="0.0" scale_x="0.0" scale_y="0.0" width="0" height="0" appearance="skins/XXX.png" function="drawer:" /> <!--无功能--> <sprite left="1000" top="1000" _name="" rotation="0.0" scale_x="0.0" scale_y="0.0" width="0" height="0" appearance="skins/XXX.png" function="" /> </screen> test_freestyle.mtz 下载链接:http://www.miui.com/forum.php?mod=misc&action=attachcredit&aid=2416844&formhash=077d5752
2015年05月06日
byMI-谢
frameRate // 可指定帧率(省着用呐!)useVariableUpdater // 指定需要哪些系统变量,包括电量和时间,可以指定时间的更新周期 useVariableUpdater = "Battery, DateTime.Hour,DateTime.Minute,DateTime.Second"或"none"指定不更新。 如果需要显示系统电量并且每小时更换图片,useVariableUpdater="Battery,DateTime.Hour"。 如果需要每秒进行多次刷新,可以直接使用 frameRatewidth // 图标大小heightscreenWidth="720" // 指定屏幕宽度hideApplicationMessage="false" (默认) // 屏蔽右上角的通知标志
2015年05月05日
<MiWallpaper/>width:表示百变壁纸的宽度。height:表示高度 另外,如果要实现元素跟随手指滑动的效果,需要借助#wallpaper_offset_pixel_x,#wallpaper_offset_xwallpaper_offset_pixel_x //偏移的像素数 (0 ~ -1*屏宽)(第一屏 ~ 最后一屏)wallpaper_offset_x //偏移百分比 (0 ~ 1.0)(第一屏 ~ 最后一屏)二者关系:#wallpaper_offset_x * 屏宽 = -1*#wallpaper_offset_pixel_x为了适配不同分辨率机型,建议使用 #wallpaper_offset_x壁纸切成双屏宽 (2*#screenWidth)壁纸定位:x="-#wallpaper_offset_x * 屏宽"随滑动的元素定位:x="-#wallpaper_offset_x * 屏宽 + 相对壁纸的位置"
2015年05月05日
byMI-谢
<Lockscreen/>rameRate="30"(默认) // 指定帧率,如果动画缓慢,可以指定小值,以省电。displayDesktop="false"(默认) // 透视到桌面,如果没有锁屏壁纸或者锁屏壁纸可以被移开或透明时可以看到桌面或锁屏前的状态。showSysWallpaper="false"(默认) // 显示桌面壁纸,如果没有指定锁屏壁纸,会将桌面壁纸作为锁屏的壁纸。screenWidth="720" // 设定屏幕标准宽度,如果指定为720,锁屏中所有元素的位置都按720p的布局编写,480p的手机会自动进行缩放。extraResourcesScreenWidth // 锁屏包中的图片资源有哪些分辨率的(宽度值),e.g. "480,720"。在不同分辨率的机型上,会自动向这里指定的宽度做最合适的适配。
2015年05月05日
byMI-谢