[分享]SPB Mobile Shell 3 主題DIY

九層塔 wrote:
請問要如何在生活畫桌...(恕刪)


官網FAQ有寫:
You can also create your own background. Spb Mobile Shell can use almost any picture as a background. To achieve best and most predictable results use the following picture sizes:

Devices with wide screen (480x800, 240x400): 960x748
Devices with regular screens (480x640, 240x320): 960x588
[分享] SPB Mobile Shell 3 主題DIY - 如何自定數位時鐘樣式
Mobile Shell 的數位時鐘樣式,有中及小兩種,檔案列表如下:
QVGA / WQVGA專用: qa_dclock_widget_medium.dat 及 qa_dclock_widget.dat
VGA / WVGA專用: va_dclock_widget_medium.dat 及 va_dclock_widget.dat

以下教學將分為兩個部分. [基礎篇]教你如何套用新的數位時鐘圖案,[進階篇]才教你修改的原理,給有興趣自己動手修改圖檔的網友參考,否則你只要參考基礎篇即可.

[基礎篇]
1.選擇一款你喜歡的數位時鐘樣式,每一款有兩個檔案.
數位時鐘(中) : 檔案為"..._dclock_widget_medium.dat",尺寸不限
數位時鐘(小) : 檔案為"..._dclock_widget.dat",尺寸不限

2. 將此兩個數位時鐘樣式檔, 複製到你PDA中mobile shell的安裝資料夾內,將原本相同檔名的檔案覆蓋掉. 其實不一定兩個檔案都要覆蓋,如果你不想要兩個尺寸的時鐘都變更,可隨你高興選擇其中一個覆蓋也可以.




第1款


第2款


2款數位時鐘樣式檔(QVGA/WQVGA專用)
2款數位時鐘樣式檔(VGA/WVGA專用)

3.完成上面步驟之後,重新開機或重新執行Mobile Shell,即可看到修改後的數位時鐘圖案,已經變更了.

[進階篇]
數位時鐘樣式檔解壓縮後,不管是中或小時鐘,裡面共有5個檔案(digits.bmp及digits_m.bmp,face.bmp及face_m.bmp,index.xml),請將其取出來,我們需要修改這5個檔案.

1.修改時鐘底圖樣式及數字樣式圖檔,尺寸可以隨你高興更改,不一定要跟預設的尺寸一樣.

digits.bmp及digits_m.bmp : 數字樣式圖檔
face.bmp及face_m.bmp : 時鐘底圖樣式圖檔

2.修改時鐘的定義檔 Index.xml. 當你製作好上面的四個bmp檔之後,因為尺寸及座標位置可能變更了,所以我們需要將index.xml裡面的定義資料,做一些修改,以符合你製作的bmp圖檔. 下面將逐一解釋每一行的意義.

設定時鐘底圖樣式的檔案名稱:
<Bitmap Name="Face" Image="face.bmp" Mask="face_m.bmp"/>
如果你將face.bmp及face_m.bmp檔名更改,就必須要將Image及Mask這兩個參數值,設定成你修改的檔名. 最好維持原來的檔名,所以這行指令就不需要修改.

設定數字樣式的檔案名稱:
<Bitmap Name="Digits" Image="digits.bmp" Mask="digits_m.bmp"/>
如果你將digits.bmp及digits_m.bmp檔名更改,就必須要將Image及Mask這兩個參數值,設定成你修改的檔名. 最好維持原來的檔名,所以這行指令就不需要修改.

設定邊界值:
<String Name="Margins" Value="0 1 0 2 0 1 0 0 0 0 12"/>
總共有11個數值,照字面上的意思,應該是設定數字之間的上下左右距離,不過實在找不到相關資料,每個數值代表什麼意義 ? 我試了一個簡單的方式供大家參考, 將數字鐘的尺寸為220x78,當作是一個參考值,如果你製作的數字鐘的尺寸,差不多是這個大小,請將這11個數值,就設定成 "0 1 0 2 0 1 0 0 0 0 12". 如果尺寸大兩倍,就按等比例將每個數值成以2,大三倍就成以3....,小兩倍就除以2,小三倍就除以3....等等. 如果數值不能整除,到底要四捨五入,捨棄小數,或是進位,你可以自己試試看.

例如兩倍尺寸為440x156, 這11個數值,我就設定成 "0 2 0 4 0 2 0 0 0 0 24".
例如一半尺寸為110x39, 這11個數值,我就設定成 "0 0 0 1 0 0 0 0 0 0 6". 

設定時間的座標:
<Rect Name="TimeRect" X="69" Y="9" Width="127" Height="47"/>
在face.bmp檔案裡面,X,Y表時間的左上角座標,Width表時間的顯示寬度,Height表時間的顯示高度.

設定日期的座標:
<Rect Name="DateRect" X="59" Y="59" Width="152" Height="14"/>
在face.bmp檔案裡面,X,Y表日期的左上角座標,Width表日期的顯示寬度,Height表日期的顯示高度.
如果你不想要讓日期顯示在時鐘上,請將X或Y的值,設成負數或是很大的正數,讓其超出螢幕畫面,就看不到了.

設定AM/PM的座標:
<Rect Name="AMPMRect" X="194" Y="9" Width="18" Height="12"/>
在face.bmp檔案裡面,X,Y表AM/PM左上角座標,Width表AM/PM的顯示寬度,Height表AM/PM的顯示高度.
如果你不想要讓AM/PM顯示在時鐘上,請將X或Y的值,設成負數或是很大的正數,讓其超出螢幕畫面,就看不到了.

設定時間數字的圖案大小:
<Rect Name="DigitRect" X="0" Y="0" Width="28" Height="47"/>
在digits.bmp檔案裡面,從上到下,依序為數字0,1,2...,9及:冒號的圖案,這11個圖案的尺寸應該都相同,所以請將 X及Y都設為0,Width表數字圖案的寬度,也就是digits.bmp圖檔的寬度,Height表數字圖案的高度,也就是digits.bmp圖檔的高度除以11.

設定AM/PM的字型:
< Font Name="AMPMFont" Face="Tahoma" HeightPxl="11" Bold="n"/>
Face表字型名稱,HeightPxl表字型大小,Bold表示是否粗體(y為是,n為否)

設定日期的字型:
< Font Name="DateFont" Face="Tahoma" HeightPxl="12" Bold="n"/>
Face表字型名稱,HeightPxl表字型大小,Bold表示是否粗體(y為是,n為否)

設定時間的左右對齊方式:
<Int Name="TimeAlignX" Value="2"/>
Value=0表靠左對齊, Value=1表靠中對齊, Value=2表靠右對齊

設定日期的左右對齊方式:
<Int Name="DateAlignX" Value="2"/>
Value=0表靠左對齊, Value=1表靠中對齊, Value=2表靠右對齊

設定AM/PM的左右對齊方式:
<Int Name="AMPMAlignX" Value="2"/>
Value=0表靠左對齊, Value=1表靠中對齊, Value=2表靠右對齊

設定時間,日期及AM/PM的上下對齊方式:
<Int Name="TimeAlignY" Value="0"/>
<Int Name="DateAlignY" Value="0"/>
<Int Name="AMPMAlignY" Value="0"/>
這三個參數,照字面意思應該是設定上下對齊方式,可是不管設定什麼值,卻沒有規則可循,而且還會影響剛才左右對齊的設定,得到很奇怪的結果,所以這三個值,請全部設定為0.

3.當你將digits.bmp, digits_m.bmp, face.bmp, face_m.bmp, 及index.xml這五個檔案修改後,請用密碼重新壓縮成原來的*.dat檔. 然後就可以按照[基礎篇]的方法直接套用了.
[分享] SPB Mobile Shell 3 主題DIY - 如何新增數位時鐘樣式
在生活化桌面內,Mobile Shell 只提供兩款數位時鐘樣式,而且非常的簡陋,網路上可以找到的數位時鐘樣式,實在少的可憐,如果你想要保留原來的兩款數位時鐘,另外再新增其他的數位時鐘,要怎麼做呢? 本篇教學,將一步步先教你如何新增兩款數位時鐘,學會這個原理及技巧之後,你就可以舉一反三,自己新增兩款以上的數位時鐘.

[步驟一]
製作兩個*.dat時鐘樣式檔, 檔案內容格式,請參考第192樓的 [進階篇]教學. 我將這兩個檔案取名如下,請根據你手機的解析度,製作相關的兩個檔案即可,下面四個檔案不需要全部製作.一般mobile shell的命名習慣,QVGA使用q開頭的檔名,而VGA使用v開頭的檔名.通常VGA版本圖檔的長及寬,是QVGA版本的兩倍大.

QVGA / WQVGA專用:
數位時鐘(特大) : 檔案為"qa_dclock_large.dat",尺寸220x78
數位時鐘(半特大) : 檔案為"qa_dclock_halfLarge.dat",尺寸110x39
VGA / WVGA專用:
數位時鐘(特大) : 檔案為"va_dclock_large.dat",尺寸不限440x156
數位時鐘(半特大) : 檔案為"va_dclock_halfLarge.dat",尺寸220x78

上面的檔名你可以自己設定,時鐘尺寸也可以根據你的喜好尺寸來製作,不一定要跟我的一樣.請注意,如果你的檔名及尺寸與我的不同,後面步驟的相關設定,也要跟著修改,才會一致,可別一樣化葫蘆,改了前面,忘了改後面

將剛才你新製作好的這兩款時鐘樣式檔案,複製到你PDA中mobile shell的安裝資料夾內. 下面有提供了21款時鐘樣式,你也可以直接下載套用.

[步驟二]
1. 將qa_layouts.dat解壓縮,取出裡面的Widgets.xml檔案, 找到下面這段程式碼位置.
<Layout Name="Default">
<Plugins>
………………………….

2. 請在<Plugins>下一行,加入下面兩段程式碼,就變成如下:
<Layout Name="Default">
<Plugins>

<Plugin Name="ModernDClockLarge" Class="Spb.LSP.ModernDClock" Skin="qa_dclock_large" DoubleSkin="va_dclock_large" MiddleSkin="ma_dclock_large">
<BoundRect X="0" Y="0" Width="220" Height="78"/>
</Plugin>

<Plugin Name="ModernDClockHalfLarge" Class="Spb.LSP.ModernDClock" Skin="qa_dclock_halfLarge" DoubleSkin="va_dclock_halfLarge" MiddleSkin="ma_dclock_halfLarge">
<BoundRect X="0" Y="0" Width="110" Height="39"/>
</Plugin>
…………………

3. 這兩段程式碼,就是我們所新增的兩個 "數位時鐘widget" 之定義, 第一個widget名稱為ModernDClockLarge, 第二個widget名稱為ModernDClockHalfLarge. 這兩個名稱可以任意更改成你喜歡的名稱. 下面就以第一個widget定義,來說明每個參數的意義.

Name="ModernDClockLarge"
設定此widget的名稱為 ModernDClockLarge, 這個名稱可以任意更改成你喜歡的名稱.

Class="Spb.LSP.ModernDClock"
設定此widget屬於什麼Class, 指定為Spb.LSP.ModernDClock, 表示這是數位時鐘的class,所以此行請勿更改.

Skin="qa_dclock_large"
設定QVGA使用qa_dclock_large.dat的時鐘檔案. 如果你在[步驟一]所製作的時鐘檔案的檔名與我的不同,請設定成你的檔名.(只要主檔名即可,不要包含.dat附檔名)

DoubleSkin="va_dclock_large"
設定VGA使用va_dclock_large.dat的時鐘檔案. 如果你在[步驟一]所製作的時鐘檔案的檔名與我的不同,請設定成你的檔名.(只要主檔名即可,不要包含.dat附檔名)

MiddleSkin="ma_dclock_large"
設定SVGA使用ma_dclock_large.dat的時鐘檔案.

註:上面Skin, DoubleSkin及MiddleSkin三個參數, 根據你手機解析度的那個參數,一定要設定正確,其餘兩個沒有作用,所以其實隨便設定什麼值都沒關係. 例如,QVGA手機,Skin一定要設定成你所製作的*.dat時鐘檔名, 而DoubleSkin及MiddleSkin雖然你有指定檔名,但是你並不需要製作這兩個檔案,因為這兩個檔案是給VGA 及SVGA使用的,QVGA手機根本用不到.

BoundRect X="0" Y="0" Width="220" Height="78"
設定時鐘的大小尺寸,請根據你製作的face.bmp時鐘底圖來設定. 例如我製作的qa_dclock_large.dat, 解開裡面的face.bmp檔案,它尺寸為220x78, 簡化起見, 我將整張圖都當作時鐘底圖,所以就將x , y設定為左上角座標(x=0, y=0), 寬度Width等於220, 高度Height等於78. 事實上,即使你設定的尺寸與face.bmp不同,mobile shell還是會自動以face.bmp圖檔尺寸為準.

4. 將修改後的Widgets.xml檔案,重新用密碼壓縮儲存到qa_layouts.dat裡面.
5. 將剛才你新製作好的qa_layouts.dat檔案,複製到你PDA中mobile shell的安裝資料夾內,覆蓋掉原來的檔案.

[步驟三]
接下來, 我們需要將[步驟二], 在Widgets.xml裡面定義好的兩個"數位時鐘widget",登入到Registry註冊表內.

當你在生活化桌面,新增widget的列表裡, 所有可以選擇的widget, 總共分成五個群組,如下圖所示,由上而下依序為0,1,2,3,4.


請用註冊表編輯程式(我使用的是PHMRegEdit免費軟體,搜尋一下很容易找到),打開registry註冊表,找到[HKEY_LOCAL_MACHINE\SOFTWARE\Spb Software House 2\Spb Mobile Shell\WidgetList\]位置,如下圖


你會看到0到4五項資料,這就是預設的五個群組的資料. 因為mobile shell內建的時鐘widget,都放在第4個群組-"時間"裡面, 所以我打算將要登入的資料,也加入"4"裡面. 你也可以將資料登入在0-3其他群組裡,甚至也可以新增一個新的群組5. 你將資料登入在哪個群組裡面,將來你在生活化桌面,新增widget時, 我們所新增的"數位時鐘widget",就會出現在widget列表的那個群組裡面.

請在"4"裡面新增兩個項目,名稱可隨你高興自取,但是最好跟widget的名稱相同,這樣比較容易理解. 因為前面我們在Widgets.xml裡面,已經定義了兩個"數位時鐘widget"的名稱,分別為ModernDClockLarge 及 ModernDClockHalfLarge. 所以我就沿用這兩個名稱,在"4"裡面新增兩個項目,如下圖.


請在ModernDClockLarge 這個項目裡面,新增兩個key, 內容如下:

a. 值名稱“Default",值類型為字串值(String),值數據為 "數位時鐘 (特大)"
---- 設定在widget列表內,此widget所要顯示的名稱, 可隨你高興自取.
b. 值名稱“Str",值類型為字串值(String),值數據為 "ModernDClockLarge:Widgets"
---- 設定在Widgets.xml檔案內,對應此widget所定義的名稱.格式如上,也就是widget所定義的名稱,加上":Widgets",結果就變成"ModernDClockLarge:Widgets"

同理, 請在ModernDClockHalfLarge這個項目裡面,新增兩個key, 內容如下:

a. 值名稱“Default",值類型為字串值(String),值數據為 "數位時鐘 (半特大)"
---- 設定在widget列表內,此widget所要顯示的名稱, 可隨你高興自取.
b. 值名稱“Str",值類型為字串值(String),值數據為 "ModernDClockHalfLarge:Widgets"
---- 設定在Widgets.xml檔案內,對應此widget所定義的名稱.

我已經幫大家做好一個cab執行檔,請將下面這個cab執行檔,複製到你的手機內,執行安裝後,就會幫你將上面這兩項資料寫入註冊表. (註: 這個cab執行檔只是寫資料到註冊表裡面,並不會複製任何檔案到你的手機內,請放心使用)
附加壓縮檔: Set2LargeDClock.cab

[步驟四]
完成上面三個步驟之後,重新開機或重新執行Mobile Shell,即可在widget列表內,選用你新增的兩個數位時鐘了.


以下收集的21款時鐘,我已經將其重新調整成上述的兩款尺寸(特大及半特大),每一款包含兩個檔案(..._dclock_Large.dat 及..._dclock_halfLarge.dat),讓你省略[步驟一],自己製作的麻煩,直接下載套用即可.










第1款


第2款


第3款


第4款


第5款


第6款


第7款


第8款


第9款


第10款


第11款


第12款


第13款


第14款


第15款


第16款


第17款


第18款


第19款


第01-19款數位時鐘樣式檔(QVGA/WQVGA專用)

第01-19款數位時鐘樣式檔(VGA/WVGA專用)

第20款


第21款


第20-21款數位時鐘樣式檔(QVGA/WQVGA專用)

第20-21款數位時鐘樣式檔(VGA/WVGA專用)

出處連結,感謝allenkuo28所提供.

如果你嫌新增數位時鐘樣式太麻煩,也可以將上面提供的..._dclock_large.dat 及 ..._dclock_halfLarge.dat檔案,把檔名直接改成 ..._dclock_widget_medium.dat 或 ..._dclock_widget.dat,覆蓋套用,將內建的中或小數位時鐘,直接替換掉,請參考第192樓.
感謝 dabow09的教學,不過您好像沒有將1-19款的數位時鐘連結放上耶
訴啊!!大大您忘嚕放連結囉....麻煩您了
各位大大請問一下
要如何把氣象資訊那頁整個放到生活面板
大大請問一下
你的城市部分是怎麼顯示中文的
我的都是英文
MAGICER5 wrote:
各位大大請問一下,要如何把氣象資訊那頁整個放到生活面板...(恕刪)

生活化桌面只能擺放widgets,而氣象資訊那頁的內容,是用程式碼,寫死在qa_layouts.dat裡面的weather.xml,並不是widget, 所以無法將其內容放到生活化桌面內.
MAGICER5 wrote:
你的城市部分是怎麼顯示中文的,我的都是英文...(恕刪)

你必須安裝spb weather,然後修改它的Template,請參考下面這篇文章.
讓Spb Weather取得中央氣象局的天氣資料
第193樓的完整教學文 [如何自定數位時鐘樣式] ,全文已經完成,請享用.
太感謝您嚕大大....偶低ks20又變漂漂了
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 36)

今日熱門文章 網友點擊推薦!