壁紙チェンジャーWidget
大体10分おきにHOME画面の壁紙をランダムに変更するテーマ。
適用画像(変わっていることがわからないので、意味が無い)
使用している背景画像はhttp://yakudatsu.livedoor.biz/archives/51660017.htmlからいくつか頂いた物
ファイル構成(/Library/Themes/以下の構成)
相対パス | ファイル名 | 用途 |
---|---|---|
MyTouchTheme/ | Wallpaper.html | ホーム画面を構成するHTML |
MyTouchTheme/js | WidgetBase.js | javascript |
MyTouchTheme/css | WidgetBase.css | スタイルシート |
MyTouchTheme/bg | bg_XXX.jpg | 背景画像 XXXは0埋めの3桁の数字(001, 002など) |
※"MyTouchTheme"はテーマ名。任意の名前でOK
※背景画像は960×640, 480×320混在でもOK
ソース
Wallpaper.html
<?xml version="1.0" encoding="UTF-8"?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script language="JavaScript" src="js/WidgetBase.js" ></script> <link rel="stylesheet" href="css/WidgetBase.css"> </head> <body> <script language="JavaScript"> PageRefresh(); setInterval('PageRefresh()', 5 * 1000 ); </script> </body> </html>
WidgetBase.js
var FIRSTTIME = 0; var BGIMAGE_NUM = 15; // 背景画像数 var TIME_CHG_BGIMAGE = 10; // 背景の切り替え間隔(分) var CHANGE_TIME = 0; /** * ページの更新処理 */ function PageRefresh() { var now = new Date(); if (FIRSTTIME == 0) { ChangeBackgroundImage(); FIRSTTIME = 1; CHANGE_TIME = now.getTime(); } else { // 前回更新時刻から10分経過していた場合は変更 if ((CHANGE_TIME + TIME_CHG_BGIMAGE * 60 * 1000) < now.getTime()) { ChangeBackgroundImage(); CHANGE_TIME = now.getTime(); } } } /** * 壁紙の切り替え */ function ChangeBackgroundImage() { var imageArray = new Array(); for (var i=0 ; i<BGIMAGE_NUM ; i++) { imageArray[i] = "url(" + "bg/bg_" + ("00" + (i + 1)).slice(-3) + ".jpg" + ")"; } n = Math.floor(Math.random()*imageArray.length); document.body.style.backgroundImage = imageArray[n]; }
WidgetBase.css
body { background-repeat : no-repeat; margin : 0; padding : 0 0 0 0; height : 480px; width : 320px; background-size : 320px 480px; }
ポイント
ソースはすべてUTF-8で保存。
作成したところなので、しばらく様子を見る必要がある。