Moin,
im kommenden update wird es gerade für Skinner ein paar neue, attraktive Möglichkeiten geben, die in Zusammenarbeit dem Merlin Team enstanden sind.
Das eine sind neue Möglichkeiten für eLabel und ePixmap :
- eLabel
- beherrscht nun ordentliches blending auf seinen Hintergrund indem man alphatest="on" oder das neue blending="on" setzt (selbe funktion, schönerer name)
- hat das Attribut cornerRadius="<zahl>" erhalten mit dem man abgerundete Hintergründe erschaffen kann. cornerRadius erzwingt alpha-blending, da man dies aufgrund den ecken unbedingt benötigt ;).
- ePixmap
- kennt das attribute gradient="<fromcolor>,<tocolor>,<vertical|verticalCentered|horizontal|horizontalCentered>
Folgender Code sorgt für das was man im angehängten Screenshot sieht (der Screensaver diente mir als einfach Vorlage um auch die durscheinenden Hintergrundfarben zu demonstrieren)
<screen name="Screensaver" title="Screensaver" position="center,center" size="fill_parent,fill_parent" backgroundColor="#000000">
<widget name="wallpaper" position="0,0" size="fill_parent,fill_parent" zPosition="1"/>
<ePixmap position="center,0" size="50%,20%" gradient="#20FF0000,#2000FF00,vertical" zPosition="2"/>
<ePixmap position="center,20%" size="50%,20%" gradient="#20FF0000,#200000FF,verticalCentered" zPosition="2"/>
<ePixmap position="center,40%" size="50%,20%" gradient="#2000FF00,#20FF0000,horizontal" zPosition="2"/>
<ePixmap position="center,60%" size="50%,20%" gradient="#200000FF,#2000FF00,horizontalCentered" zPosition="2"/>
<widget name="info" position="center,80%" size="50%,20%" valign="center" halign="center" backgroundColor="#20DDDDDD" foregroundColor="#000000" zPosition="2" cornerRadius="16" /> <!-- blending ist hier automatisch an, weil cornerRadius gesetzt, ohne würde man einfach blend="on" setzen -->
</screen>
Der zweite große Punkt für Skinner sind die "layouts". Das sind wiederverwendbare Skin-Bausteine die helfen die ständigen Wiederholungen von Code loszuwerden.
Folgend die Beschreibung vom Merlin-Team dazu
<layouts>
<layout name="Merlin4_Standard">
<ePixmap pixmap="Merlin4/bg/f_info.png" position="0,0" size="1280,720" transparent="0" zPosition="-1" />
<eLabel backgroundColor="2ndbg" font="Regular; 22" foregroundColor="title" position="50,34" size="250,30" transparent="1" zPosition="1" />
</layout>
<layout name="Merlin4_Buttons">
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/red.png" position="47,643" size="10,25" />
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/green.png" position="222,643" size="10,25" />
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/yellow.png" position="402,643" size="10,25" />
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/blue.png" position="582,643" size="10,25" />
<widget backgroundColor="2ndbg" font="Regular; 18" foregroundColor="button" halign="left" name="key_red" position="65,637" size="150,40" transparent="1" valign="center" zPosition="1" />
<widget backgroundColor="2ndbg" font="Regular; 18" foregroundColor="button" halign="left" name="key_green" position="245,637" size="150,40" transparent="1" valign="center" zPosition="1" />
<widget backgroundColor="2ndbg" font="Regular; 18" foregroundColor="button" halign="left" name="key_yellow" position="425,637" size="150,40" transparent="1" valign="center" zPosition="1" />
<widget backgroundColor="2ndbg" font="Regular; 18" foregroundColor="button" halign="left" name="key_blue" position="605,637" size="130,40" transparent="1" valign="center" zPosition="1" />
</layout>
.
.
.
</layouts>
<screen name="ChannelSelection" position="0,0" size="1280,720" backgroundColor="transparent" title="Channel Selection" flags="wfNoBorder" >
<layout name="Merlin4_Standard" />
<layout name="Merlin4_Buttons" />
.
.
.
</screen>
<!-- example for filename attribute -->
<layouts>
.
.
.
<layout name="Merlin4_EPG_Buttons" filename="Merlin4/epg_buttons.xml" />
.
.
.
</layouts>
<!-- file epg_buttons.xml contains -->
<skin>
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/red.png" position="77,623" size="10,25" />
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/green.png" position="257,623" size="10,25" />
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/yellow.png" position="437,623" size="10,25" />
<ePixmap alphatest="blend" pixmap="Merlin4/buttons/blue.png" position="617,623" size="10,25" />
</skin>
Display More
Vielen Dank an das Merlin Team für die eigentliche Implementierung (auch wenn ich immer was zu meckern und ändern hab ;)) und vor Allem auch die ersten Tests an der ganzen Sache und viel Spass mit dem neuen Skin-Features!
Nachtrag: Um den Jungs aus dem Merlin-Team nicht zu viel Arbeit zu machen werden die ursprünglichen Attribute "radius" und "roundedlabelColor" auch bei uns korrekt behandelt. Bei den Farbverläufen war leider ein Dreher drin so dass Ihr einmal "horizontal" und "vertical" gegeneinander tauschen müsst.