问题:1.怎么添加一行文字到锁屏界面?2.怎么修改文字?3.怎么添加文字属性?4.怎么把文字显示得更漂亮?解决方法:1.添加任意一行到【manifest.xml】中,添加到这。【应用到手机】。OK。2.修改下其他属性,可以改变 宽度、文字滚动、旋转角、行距等。3.一步一步,动手试试。4.完!(技能学得好快啊)<Text text="加入文字"/><Text text="改变位置" x="540" y="960" align="center" alignV="center"/><Text text="改变透明度" x="540" y="660" align="center" alignV="center" alpha="100"/><Text text="改变大小、颜色" x="540" y="960" align="center" alignV="center" size="40" color="#ffffff"/><Text textExp="'这是文字表达式,显示你想要引用的数值:' + #touch_x "/>
2015年06月01日
byMI-谢
问题:1.多数人喜欢混搭。2.多数人喜欢免费。3.多数人不在意作品原创。4.多数人并不是主题制作者。5.少数人可能不爱听“接下来的话”。解决方法:1.盗用或混搭并没什么,毕竟做出来的东西就是给人用的。2.盗用并自认为原创,确实是可耻的,提交上架更是如此。(如果还收费的话,那就...嗯哼...可以骂人,我允许你开骂!)3.不断革新。做个beta版本,不断维护,不断创新。(让抄袭成为一件累活,尽情抄吧,抄累了,你就怕了!)4.不断革新。创意在手,一个创意抄完了,哥还有下一个创意嘛。(so.楼主本人不喜欢ps切图做图标那些事,更喜欢写写maml脚本)5.绝招:哥就是在玩,无所谓~\(≧▽≦)/~啦啦啦(不要太认真!做事认真就行)我要出绝招!
2015年06月01日
byMI-谢
问题:1.不会编程的小白。2.不会PS的小小白。3.爱折腾的小小小白。4.不会英文,会查字典的小小小小白。解决方法:1.安装上【MIUI主题编辑器】http://www.miui.com/thread-642823-1-1.html2.桌面上有一个【theme_name文件夹】theme_name.rar(3.36 MB, 下载次数: 1282)3.编辑theme_name/lockscreen/advance/下【manifest.xml】4.添加:<?xml version="1.0" encoding="UTF-8"?><Lockscreen screenWidth="1080" > <!--屏幕上添加一个看不到的按钮1080x1920 --> <Button name="test_btn" x="0" y="0" w="1080" h="1920"> <Triggers> <Trigger action="down"> </Trigger> <Trigger action="up"> </Trigger> <Trigger action="double"> <!--解锁--> <ExternCommand command="unlock" delay="550" /> </Trigger> </Triggers> </Button></Lockscreen>5.【保存】6. 打开【MIUI编辑器】,USB连上手机(手机端打开USB调试模式)。7.【打开】->【选择桌面上 theme_name文件夹】8.【应用到手机】9. 关屏开屏,戳“俩下”屏幕,咔,解锁了。10.完!ps.接上来,开始学MAML脚本语言,进击吧~
2015年06月01日
byMI-谢
注意:1.所有元素支持动画。2.位置动画、大小动画、旋转动画、透明度动画和图片源动画 5种。 -改变元素属性 x y,size,scale,alpha... -添加动画标签 <SourcesAnimation/><RotationAnimation/><PositionAnimation/>...3.动画相互独立、自动循环4.动画帧属性值(相对值,例如坐标是相对图片位置),线性插值(线性变化)5.动画默认时间从0开始(推荐,手动设置time="0")6.动画帧属性值一般为整数类型,time为ms秒单位7.XXX-----------------------------------------------------------------------------------8.动画标签里的属性值只能线性变化的。但可以通过定义一个变量的高阶函数表达式,动态修改元素属性,实现非线性值变化。例如:正弦波动、阻尼震荡、弹性震荡、快进慢出、慢进快出 等等。-----------------------------------------------------------------------------------望,有心人补充分享经验呐!(希望点评补充,方便后来者学习)规范代码:<Image x="0" y="0" src="test.png"> <PositionAnimation> <Position x="0" y="0" time="0" /> <Position x="100" y="100" time="1000" /> </PositionAnimation> <SizeAnimation> <Size w="100" h="100" time="0" /> <Size w="200" h="200" time="1000" /> </SizeAnimation> <AlphaAnimation> <Alpha a="0" time="0" /> <Alpha a="255" time="1000" /> </AlphaAnimation> <RotationAnimation> <Rotation angle="0" time="0" /> <Rotation angle="360" time="1000" /> </RotationAnimation></Image>
2015年06月01日
byMI-谢
动态帧率 <FramerateController /> 一般的帧率控制:① frameRate 属性控制普通状态下的帧率② 支持分别设置充电、电量低、充满电状态下的帧率,以方便控制这些状态下的帧率,达到省电的目标。比如,普通状态下没有动画,帧率可以设为0;充电状态下有动画,帧率可以设为30。frameRateCharging="30" frameRateBatteryLow="20" frameRateBatteryFull="1" 高级用法:①为了在xml描述语言中根据时间线指定不同帧率,新增FramerateController 元素。②此元素和其他界面元素一样可以被添加到各个容器中。③此元素包含一个帧率控制时间线,可以指定在一定的时间使用一定的帧率。④此元素会控制它所在容器下的时间线的帧率,即,所有该容器下的元素的动画都会与此元素指定的帧率变化同步。<FramerateController name="panel_framerate_controller" loop="false"> <ControlPoint time="0" frameRate="60"/> <ControlPoint time="500" frameRate="60"/></FramerateController><!-- 帧率可以通过name控制 --><Command target="panel_framerate_controller.animation" value="play"/>
2015年06月01日
byMI-谢
个性化设置<Config/> 每个主题都可以带一个配置描述xml文件,该文件描述了可以个性化配置 设置项目:开关、文字输入、文字选择、数字输入、数字选择、程序快捷方式 文件要求:config.xml 和manifest.xml放在同一个目录下<!--config.xml中--><Config> <!--设置组 text 设置组名称--> <Group text="日期时间"> <!--设置项目 //text:设置项名称,显示在设置界面中的文本 //summary:设置项详细说明 //id:设置项对应的变量名称 //default:缺省值 设置项目会把设置值绑定到百变锁屏的变量中,在manifest.xml中可以引用这些设置变量--> <!--开关--> <CheckBox text="" summary="" id="config_data" default="1"/> <!--文字输入--> <StringInput text="" summary="" id="config_format" default="k:mm"/> <!--文字选择--> <StringChoice text="" summary="" customizable="true" id="time_format"> <!--文字选择项目 value变量值 text界面显示文字--> <Item value="hh:mm" text="12小时"/> <Item value="kk:mm" text="24小时"/> </StringChoice> <!--数字输入--> <NumberInput text="" summary="" id="" default=""/> <!--数字选择--> <NumberChoice text="" summary="" id=""> <!--数字选择项目 value数值 text界面显示文字--> <Item value="0" text="模式1"/> <Item value="1" text="模式2"/> </NumberChoice> <!--选择快捷方式 id: 对应 EndPoint 中Intent的id,表示设置相同id的intent 快捷方式--> <AppPicker text="" id=""/> </Group></Config> <!-- manifest.xml中,调用config.xml里 #config_data--><Var name="config_data_var" expression="ifelse(isnull(#config_data),1,#config_data)" type="number" const="true"/><Unlocker> <StartPoint x="0" y="" w="" h=""> </StartPoint> <EndPoint x="0" y="" w="" h=""> <Intent id="left_task" action="android.intent.action.VIEW" type="vnd.android.cursor.dir/calls"/> </EndPoint></Unlocker>
2015年06月01日
byMI-谢
<BroadcastBinder/> 支持接收 broadcast广播 并 获取数据 name // 变量名 extra // broadcast 广播 中的extra名称 type // 类型 int string double float long 支持Trigger // 接收到 broadcast广播,可更新变量,可触发若干命令规范代码:<VariableBinders> <BroadcastBinder name="" action=""> <Variable name="battery_level" type="int" extra="level"/> <Variable name="battery_plugged" type="int" extra="plugged"/> <Trigger> <Command target="" value=""/> <Command target="" value=""/> <Trigger> </BroadcastBinder></VariableBinders>样例:(百变图标中接受系统广播) ps.可自定义广播 *TODO<Icon version="1" frameRate="0" width="136" height="136" resDensity="320" extraResourcesDensity="320,480" extraScaleByDensity="480:1.412" useVariableUpdater="Battery"> <VariableBinders> <BroadcastBinder action="miui.intent.action.BATTERY_CONFIG_CHANGED" > <Variable name="battery_level" type="int" extra="battery_level" default="0"/> </BroadcastBinder> </VariableBinders> <Var name="bar_height" expression="45/100*#battery_level"/> <Image src="bg.png"/> <Image visibility="1" src="normal.9.png" h="#bar_height" align="center" alignV="bottom" x="68" y="94"/></Icon>
2015年06月01日
byMI-谢
<WebServiceBinder/>name: 名称,用来在系统中保存查询结果uri: webservice api 地址params: 参数,格式: "参数名1:值1,参数名2:值2,参数名3:值3"updateInterval: 查询间隔,单位:秒updateIntervalFail:查询失败后的重试时间,单位秒<Variable/>name:绑定参数名type:string number 参数的类型xpath: 将返回xml结果中xpath指定的内容绑定到该参数persist: 参数值是否在退出锁屏后保存,下次进入锁屏时读取出来,避免重复联网查询规范代码:<VariableBinders> <WebServiceBinder name="MyWeather" uri="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName" params="theCityName:北京" updateInterval="3600" updateIntervalFail="60"> <Variable name="weather_city" type="string" xpath="/ArrayOfString/string[2]" persist="true"/> <Variable name="weather_temperature" type="string" xpath="/ArrayOfString/string[6]" persist="true"/> <Variable name="weather_summary" type="string" xpath="/ArrayOfString/string[7]" persist="true"/> <Variable name="weather_wind" type="string" xpath="/ArrayOfString/string[8]" persist="true"/> <Variable name="weather_icon1" type="string" xpath="/ArrayOfString/string[9]" persist="true"/> <Variable name="weather_icon2" type="string" xpath="/ArrayOfString/string[10]" persist="true"/> <Variable name="weather_real" type="string" xpath="/ArrayOfString/string[11]" persist="true"/> </WebServiceBinder></VariableBinders>
2015年06月01日
byMI-谢
<ContentProviderBinder />定义一个ContentProvider源和绑定到它上的变量 uri: content provider uri, 指定选用哪个content provider uriFormat: 如果uri需要添加变量,可以用格式化,需要和uriParas一起使用 uriParas: 同Text element 的格式 columns: 需要查询的列名,用逗号分隔 where: 查询条件,同 SQL args: "where" 的参数. order: 排序条件, 同 SQL countName: 将查询结构数量绑定到该变量名 where="" whereFormat="" whereParas="" // 支持 where 的格式化 dependency // 支持依赖关系,即某个ContentProviderBinder查询结束后获取的变量作为下一个ContentProviderBinder查询的参数。 提供了查询应用程序信息的通用接口,定义了新的xml代码来查询content provider,并查询到的信息绑定到变量上。 可以用来显示第三方应用程序的信息,只要第三方应用提供相应的content provider。 比如,可以显示天气,邮件,待办事项,便签,等等 也可以自己写一个App应用程序,查询任何你想要的信息,并通过content provider来提供给锁屏使用。<Variable />定义一个绑定变量 name: 变量名 type: content provider中的数据类型: string/double/float/int/long column: 变量绑定到的列的名称. row: 变量绑定到的行数,默认为0.规范代码:<!--name2查询结束后会触发name1的查询,name1的查询可以使用name2的变量。如果name2数据发生变化重新查询后,会触发name1的重新查询 --><ContentProviderBinder name="name1" dependency="name2"><ContentProviderBinder name="name2" ><VariableBinders> ContentProviderBinder name="weather_provider" uri="content://weather/weather" columns="city_id,city_name,weather_type,aqilevel,temperature,tmphighs,tmplows" <countName="hasweather" denpendency="selected_city"> <Variable name="weather_location_id" type="string" column="city_id"/> <Variable name="weather_location" type="string" column="city_name"/> <Variable name="weather_id" type="int" column="weather_type"/> <Variable name="weather_aqilevel" type="int" column="aqilevel"/> <Variable name="weather_temperature" type="int" column="temperature"/> <Variable name="weather_temphigh" type="int" column="tmphighs"/> <Variable name="weather_templow" type="int" column="tmplows"/> <Variable name="weather_id1" type="int" column="weather_type" row="1"/> <Variable name="weather_temphigh1" type="int" column="tmphighs" row="1"/> <Variable name="weather_templow1" type="int" column="tmplows" row="1"/> <Variable name="weather_id2" type="int" column="weather_type" row="2"/> <Variable name="weather_temphigh2" type="int" column="tmphighs" row="2"/> <Variable name="weather_templow2" type="int" column="tmplows" row="2"/> <Variable name="weather_id3" type="int" column="weather_type" row="3"/> <Variable name="weather_temphigh3" type="int" column="tmphighs" row="3"/> <Variable name="weather_templow3" type="int" column="tmplows" row="3"/> </ContentProviderBinder> ContentProviderBinder uri="content://weather/selected_city" columns="flag" whereFormat="posID='%s'" whereParas="@weather_location_id" <dependency="weather_provider"> <Variable name="is_location_city" type="int" column="flag"/> </ContentProviderBinder> </VariableBinders>
2015年06月01日
byMI-谢
绑定变量源 <VariableBinders /> 定义各种变量绑定到的源(即 从变量源获取数据) ContentProviderBinder SensorBinder WebServiceBinder*TODO BroadcastBinder<VariableBinders> <ContentProviderBinder uri="content://***" columns="" whereFormat="" whereParas="" dependency=""> <Variable name="" type="int" column="flag"/> </ContentProviderBinder> <SensorBinder type="gravity"> <Variable name="" index="0"/> <Variable name="" index="1"/> <Variable name="" index="2"/> </SensorBinder> <BroadcastBinder name="" action=""> <Variable name="" type="int" extra=""/> <Variable name="" type="int" extra=""/> <Trigger> <Command target="" value=""/> <Command target="" value=""/> </Trigger> </BroadcastBinder> <WebServiceBinder name="" uri="http://***" params="" updateInterval="3600" updateIntervalFail="60"> <Variable name="" type="string" xpath="" persist="true"/> <Variable name="" type="string" xpath="" persist="true"/> </WebServiceBinder> </VariableBinders>
2015年06月01日
byMI-谢