Pages

2010年8月29日日曜日

Android Xperiaのエミュレータ作成方法

Sony Ericssonで配布されているSDKをインストールしてスキンをコピーしてやればOKみたいです。

まずは書きからSDKをダウンロード

http://developer.sonyericsson.com/wportal/devworld/search-downloads/sdk?cc=gb&lc=en

このSDKをインストールするとインストールしたディレクトリの中に Xperia X10 Skin ディレクトリがあるのでそれをAndroid SDK の add-ons ディレクトリの中にコピーする。

例として自分のコピーしたパスを書くとこうなる。

C:\Program Files\Sony Ericsson\Web SDK\Xperia X10 Skin



D:\Program Files\pleiades-e3.6-java-jre\android-sdk-windows\add-ons\Xperia X10 Skin

あとは、Eclipse立ち上げてAVDマネージャーから新規でエミュートする端末を作成する。
その時にターゲットにXperiaが追加されてるので、選択して完了。

2010年8月25日水曜日

Android 地図をドラッグするとエラーで落ちる現象

ItemizedOverlay を利用してたら地図を移動しようとドラッグしたらアプリが落ちる現象が発生した。

原因は ItemizedOverlay の コンストラクトでした。

super( boundCenterBottom(defaultMarker) );
のみだとダメみたいです。。。
SDKのバージョンの問題もあるのかな。。。

super( boundCenterBottom(defaultMarker) );
populate();

とする事で解消。

Yahho Calendar を祝日以外の指定曜日のみクリックできないようにする

Yahho Calendar
http://0-oo.net/sbox/javascript/yahho-calendar

YUIベースで作られた祝日表示対応のこのカレンダー。
祝日以外の水曜日をクリックできないようにする方法をやってみた。

まずクリックできないようにする方法が用意されているのかがポイントだけど、それは用意された。
よかった(笑)

renderBodyCellRestricted

を利用するみたい。

var cal = new YAHOO.widget.Calendar(place, config);
cal.addRenderer("8/25", cal.renderBodyCellRestricted);

こんな感じで使うみたい。

それで結局追加したのが、

yahho-calendar.js ファイルの最後に

YahhoCal.setDisableDays = function(index) {
    $(".wd3").each(function(){
        if (!$(this).hasClass("holiday" + index)) {
            var value = $(this).children("a").text();
            $(this).children("a").remove();
            $(this).text(value);
            $(this).removeClass("selectable");
            $(this).addClass("restricted");

            // これだけでいけるはずだけどうまく動かない。。。
            var date = YahhoCal._cal.getDateByCellId($(this).attr("id"));
            var month = date.getMonth() + 1;
            var day = date.getDate();
            YahhoCal._cal.addRenderer(month + "/" + day, YahhoCal._cal.renderBodyCellRestricted);
        }
    });
}

を追加した。
で、見て解る通りrenderBodyCellRestrictedだけじゃない。。。
そうなんです、実行するタイミングが悪いのかしてrenderBodyCellRestrictedが思うように動かない。。。
で、無理やりjquery使ってclassいじっちゃいました。。。

ここまでするならrenderBodyCellRestricted無しの方がいいかも位ですね。。。

とりあえずこいつを gcalendar-holidays.js ファイルの GCalHolidays.decode 関数の最後の

//コールバック
this._userCallback(days, index);

のところに

//コールバック
this._userCallback(days, index);
YahhoCal.setDisableDays(index);

って感じで追加しました。

Followers