音乐 name //音乐控件名autoShow //当前播放音乐中,进入锁屏,是否自动显示MusicControldefAlbumCover="default_album_cover.png" //指定默认专辑封面enableLyric // 是否开启歌词支持。(性能有些许降低,三思后行)updateLyricInterval // 歌词信息的更新间隔。(性能有些许降低)systemPlayer="true"frameRate="0"规范代码: <MusicControl name="music_control" autoShow="" defAlbumCover="default_album_cover.png" enableLyric="" updateLyricInterval=""> <!-- 专辑封面,和普通Image一样除了图片是绑定到专辑封面的,可以指定大小,加Mask等 --> <Image name="music_album_cover" /> <!-- 歌名和歌手显示文字 --> <Text name="music_display"/> <!-- 音乐时间转换格式mm:ss --> <DateTime x="" y="" color="" size="" value="#music_control.music_position" format="mm:ss"/> <DateTime x="" y="" color="" size="" value="#music_control.music_duration" format="mm:ss"/> <!-- 上一首按钮 --> <Button name="music_prev"/> <!-- 下一首按钮 --> <Button name="music_next"/> <!-- 播放按钮 --> <Button name="music_play"/> <!-- 暂停按钮 --> <Button name="music_pause"/> <MusicControl>有哪些“metaData”可以用?@music_control.title //歌名@music_control.artist //歌手名字@music_control.lyric_before //已播放过的歌词@music_control.lyric_current //正在播放的歌词@music_control.lyric_after //未播放的歌词@music_control.lyric_last //上一句歌词@music_control.lyric_next //下一句歌词#music_state //播放状态 0停止 1播放#music_control.lyric_current_line_progress //当前行歌词的行内播放进度,浮点数0~1.0#music_control.music_duration //歌曲长度,单位ms#music_control.music_position //歌曲当前播放位置,单位ms
2015年05月06日
byMI-谢
1.按钮:what?Button.监控用户的单击down/up、双击double等操作通过不同触发器trigger,发送指令command,从而控制界面上其他元素。(通过元素指定name属性,作为按钮的控制对象target )按钮元素也可以将事件传递给界面上其他元素,来使其他元素响应用户在锁屏界面上的操作。( TODO)2.按钮属性:x, y, w, h 指定按钮触发区域。listener 指定该按钮的事件要传给哪个元素。3.Button可以有多个trigger,trigger定义按钮动作action 触发相关的指令commandaction: 按钮动作 down (按下), up (抬起), double (双击)target: 控制目标名value: 属性值(boolean值: true, false, toggle) <Button name="test_btn_name" x="0" y="0" w="1080" h="960" listener=""> <Normal> <!-- 按钮正常状态时,显示的界面 --> </Normal> <Pressed> <!-- 按钮按下状态时,显示的界面 --> </Pressed> <!-- 按钮按下、松开、双击触发的指令command在trigger中添加 --> <Triggers> <Trigger action="down"> </Trigger> <Trigger action="up"> </Trigger> <Trigger action="double"> </Trigger> </Triggers> </Button>4. listener 可以不指定5. Normal Pressed 状态,也可以不指定 - 不指定可视化元素,Button是“不可见”,但“存在“,能触发哦!6. Trigger可以只指定一个,其他空着就行 - Command指令,根据设计需要添加即可。7.完!(技能get到没?)
2015年05月06日
byMI-谢
图片<Image/> 用来在锁屏界面上显示一个图片,可以指定各种属性 x,y //坐标(左上角为原点0,0) w,h //宽和高 pivotX, pivotY //旋转中心 rotation //旋转角度,一周360度 src //图片源(支持路径src="pic/file/test.png") srcid //图片后缀数字,显示不同的图片(也支持用变量表示) 如果src="test.png" srcid="9" 则会显示图片 "test_9.png" antiAlias true/false //抗锯齿,true:图片在变形旋转时不会有锯齿,但是速度会慢 srcExp //图片源表达式 srcFormat //图片源格式 srcFormatExp //图片源格式表达式 srcParas //图片源参数 alpha //透明度 0-255, 小于等于0不显示 align/alignV //水平、垂直*对齐方式数字图片<ImageNumber/> number //要显示的数字表达式 src //图片源,支持SourceAnimation 如果src="number.png" 则会使用 number_0.png number_1.png ... 图片来绘制数字图片遮罩<Mask/> 黑色部分代表“图片会显示出来”,透明部分代表“图片不显示出来” align 相对/绝对位置。相对:遮罩随图片移动而移动。绝对:遮罩保持不动。 支持 源动画、旋转动画、位置动画、属性支持变量表达式规范代码: <Image x="50" y="50" srcExp="'files/test_' + #day_of_week + '.png'" align="center" alignV="center" /> <ImageNumber number="#day_of_week" src="w.png"> <Image x="100" y="100" src="test.png"> <Mask x="0" y="0" src="mask_1.png" align="absolute"> <SourcesAnimation/> <RotationAnimation/> <PositionAnimation/> </Mask> </Image>
2015年05月06日
byMI-谢
时间 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-谢