Allora finalmente ho capito. Ora dobbiamo vedere la tua versione di free launcher. Per esempio nella mia il file curtain.mtz (quello che lancia il meteo è questo). Come puoi vedere nella mia versione cerca genie widget
<?xml version="1.0" encoding="utf-8"?>
<!--窗帘动画-->
<gadget version="1.0" width="720" height="600" screenWidth="720">
<VariableBinders>
<ContentProviderBinder
uriFormat="content://com.google.android.apps.genie.geniewidget.weather/weather/current/%d"
uriParas="#time_sys"
columns="iconResId,location,temperature,lowTemperature,highTemperature,description"
countName="hasweather">
<Variable name="weather_id" type="int" column="iconResId"/>
<Variable name="weather_location" type="string" column="location"/>
<Variable name="weather_temperature" type="int" column="temperature"/>
<Variable name="weather_temperature_range" type="string" column="temperature_range"/>
<Variable name="weather_lowTemperature" type="int" column="lowTemperature"/>
<Variable name="weather_highTemperature" type="int" column="highTemperature"/>
<Variable name="weather_description" type="string" column="description"/>
</ContentProviderBinder>
</VariableBinders>
<!--panel-->
<Var name="panel_open" expression="0" const="true"/>
<Var name="move_distance" expression="120" const="true"/>
<FramerateController name="panel_framerate_controller" loop="false">
<ControlPoint time="0" frameRate="50"/>
<ControlPoint time="800" frameRate="0"/>
</FramerateController>
<Var name="ani_offset_y">
<VariableAnimation>
<AniFrame value="#ani_begin_y" time="0"/>
<AniFrame value="0" time="300"/>
<AniFrame value="0" time="100000000000000"/>
</VariableAnimation>
</Var>
<Var name="panel_y" expression="(#panel_open-1)*#move_distance+#ani_offset_y"/>
<VirtualScreen name="screenview" w="453" h="350">
<Group x="0" y="#panel_y+305">
<Image x="0" y="5" src="weather_bg.png">
<Mask x="0" y="-#panel_y+65" src="weather_bg_mask.png" align="absolute">
</Mask>
</Image>
<Image x="320" y="60" src="weather.png" visibility="#hasweather" srcid="#weather_id" align="left" />
<Text x="55" y="52" size="45" alpha="255" color="#FFFFFFFF" format="%s" paras="@weather_location" />
<Text x="55" y="108" size="45" alpha="255" color="#FFFFFFFF" format="%d" paras="#weather_temperature" />
<Text x="108" y="108" size="45" alpha="255" color="#FFFFFFFF" text="℃" />
<Text x="175" y="95" size="25" alpha="255" color="#FFFFFFFF" format="%s" paras="@weather_temperature_range"/>
<Text x="175" y="125" size="25" alpha="255" color="#FFFFFFFF" format="%s" paras="@weather_description"/>
<Button x="410" y="230" w="150" h="130">
<Normal>
<Image x="228" y="40" align="center" alignV="center" src="weather_up.png" visibility="#panel_open"/>
<Image x="228" y="40" align="center" alignV="center" src="weather_down.png" visibility="not(#panel_open)"/>
</Normal>
<Triggers>
<Trigger action="up">
<VariableCommand name="panel_open" expression="not(#panel_open)"/>
<VariableCommand name="ani_begin_y" expression="ifelse(#panel_open,-#move_distance,#move_distance)"/>
<Command target="ani_offset_y.animation" value="play"/>
<Command target="panel_framerate_controller.animation" value="play"/>
</Trigger>
</Triggers>
</Button>
</Group>
</VirtualScreen>
<Image src="screenview" srcType="VirtualScreen" x="215" y="235"/>
<Var name="curtain_count" expression="14" const="true"/>
<Var name="curtain_x" expression="8" const="true"/>
<Var name="curtain_y" expression="9" const="true"/>
<Var name="cur_offset" expression="39" const="true"/>
<Var name="max_offset" expression="0" const="true"/>
<Var name="touch_offset" expression="(#touch_y-#touch_begin_y)/(#curtain_count-1)" />
<Var name="offset" expression="max(5,min(39,#cur_offset+#touch_offset))" />
<Var name="intercept_sys_touch" expression="ge(abs(#touch_y-#touch_begin_y),10)+le(abs(#touch_x-#touch_begin_x),10)+#max_offset" />
<Group name="curtain_group" x="#curtain_x" y="#curtain_y">
<Image x="0" y="13*#offset-18" src="curtain.png" />
<Image x="0" y="12*#offset-18" src="curtain.png" />
<Image x="0" y="11*#offset-18" src="curtain.png" />
<Image x="0" y="10*#offset-18" src="curtain.png" />
<Image x="0" y="9*#offset-18" src="curtain.png" />
<Image x="0" y="8*#offset-18" src="curtain.png" />
<Image x="0" y="7*#offset-18" src="curtain.png" />
<Image x="0" y="6*#offset-18" src="curtain.png" />
<Image x="0" y="5*#offset-18" src="curtain.png" />
<Image x="0" y="4*#offset-18" src="curtain.png" />
<Image x="0" y="3*#offset-18" src="curtain.png" />
<Image x="0" y="2*#offset-18" src="curtain.png" />
<Image x="0" y="#offset-18" src="curtain.png" />
<Image x="0" y="-18" src="curtain.png" />
<Button x="0" y="0" w="709" h="13*#offset+39">
<Triggers>
<Trigger action="up">
<VariableCommand name="max_offset" expression="max(#max_offset,abs(#touch_y-#touch_begin_y))"/>
<VariableCommand name="cur_offset" expression="#offset" />
<VariableCommand name="touch_begin_y" expression="#touch_y" />
</Trigger>
<Trigger action="down">
<VariableCommand name="max_offset" expression="max(#max_offset,abs(#touch_y-#touch_begin_y))"/>
<VariableCommand name="cur_offset" expression="#offset" />
<VariableCommand name="touch_begin_y" expression="#touch_y" />
</Trigger>
</Triggers>
</Button>
</Group>
</gadget>