2012-02-06

AlertDialogについてのメモ

AlertDialog.Builderのshow()を使って表示すると画面の回転で消えてしまう
ので、ちょっと調べてみたらActivityのonCreateDialogをOverrideして
表示するのが基本のようで、これだと画面が回転しても消えない

で、やってみたのですがDialogを継承してonCreateをOverrideして
AlertDialog.Builderのcreateやshowを呼び出しておいても表示されない

なのでMyDialogてクラスがあるとしてその中に

public class MyDialog extends Dialog { 
    private Context context;    //フィールド

  //コンストラクタ
    public MyDialog(final Context context) {
         //Dialogを継承しているので必要
    super(context);
        this.context = context;
    }

    //これをActivityのonCreateDialogで呼び出す
    public Dialog createAlertDialog() {
        //まずはAlartDialog.Builderの生成
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        //必要なことをする
       return builder.create();
    }
}

って感じのメソッドを作ってActivityのonCreateDialogで

    protected Dialog onCreateDialog(int id) {
    Dialog dialog = null;
         switch (id) {
         case 0:
             MyDialog myDialog = new MyDialog(this);
             dialog = myDialog.createAlertDialog();
      break;
         //なんか他にもあったらその処理
         }
    return dialog;
    }

で、必要な所でshowDialog(0);をよんでやればOK

他にうまいやり方があるのかもしれないけど、とりあえずこれで妥協

レイアウトを自作したダイアログならDialogのonCreateをOverrideして
そのなかでsetContentViewやらなんやらしてやればいいんだけど
その辺はここが参考になりました
http://androidr.sblo.jp/article/44022821.html

あと、AlertDialogを別ファイルにしないならここが参考になりました
 http://beefsalt.blog79.fc2.com/blog-entry-23.html
それとここも参考になりました
http://www.techdoctranslator.com/android/guide/ui/dialogs

ちなみに、SimpleGmapshのダイアログ3個の内レイアウトまるまる自作は1個だけ
気が向いたら全部レイアウト自作に切り替えようかなぁ

2011-12-26

デベロッパーアカウント

某掲示板某スレの183のおかげでデベロッパーアカウント作れたようです
まだ、アプリを公開するに至ってないのでちょっと不安ですが

流れとしては
1. Vプリカ作る
2. コンビニでお金払う
3. PCでAndroidマーケットに行く
4. 下の方にあるデベロッパーをクリック
5. 「公開」の詳細をクリック
6. デベロッパーに作ったアカウントでログイン
7. 必要事項を記入

2は支払い方法は色々あるので好きなので

6は、別に新しく作る必要はないかも

7はカードに表示されている名前がVペリカに表示されている
アルファベットではダメみたいなのでカタカナで名前入れたら
なんかOKだったみたい。このあたりがちょっと不安なポイントです。

とりあえずSimpleGmapshの方をアイコン作って公開してみようと思います。

あと、ここの名前をデベロッパーのに変更しました
まあ、なんとなくですが

2011/12/27 追記
なんとかマーケットにアプリ公開出来ました

2011-12-25

SimpleGmapsh

某掲示板で指摘されましたし、ちょうどいいのでここでも公開します

MapViewを使って住所やグーグルマップのURLを取得し貼り付けるアプリ
マッシュルームとしても通常のアプリとしても動きます

マップ上をロングタップで住所取得
検索ボタン(虫眼鏡アイコン)長押しで音声入力起動

現在地取得ボタンはメニュー内にあります

住所やURLはテキストボックスに表示されているものを貼り付けます

OSは2.2以上対応です

SDWatcherの方にも書きましたが
gitはよく分からないのでこちらで

2011/12/26
リンクを貼り直しました

キーワード mush
 http://www1.axfc.net/uploader/Sc/so/300746.zip


2011/12/27 追記
某掲示板の皆さんありがとう。マーケットに公開出来ました。
https://market.android.com/details?id=jp.simple.gmapsh

2011/12/30
手直ししたので公開しようと思ったら
keystoreが違うとアップデートにならないみたい、残念・・・

2011/01/03
アップロードしましたが、きちんと更新されるかちょっと不安
追記 
できてるような気がする

2011/02/05
更新しました
ペディアさんありがとう

2011-10-02

SDWatcher 1

某掲示板を見てたら
「フォルダやファイルの変更を監視するようなアプリはありませんか」
という書き込みを見つけたのでチャレンジしてみたところ、
なかなか微妙なアプリが出来たので置いときます。
 
↑ここのダウンロードからapkが落とせると思います。ソースもアップしてます。
githubにアップするのは初めてだったのですが、多分大丈夫だと…
あと、READMEは意味なしです、気にしないで下さい。

アプリの機能は、SDカード直下(Galaxyは内部SD)で
ファイル、フォルダが生成、削除されたときに通知します。
それだけです。

なんとかこれに、データベースをくっつけて履歴を残せるようにしたいと思ってます。
出来るかどうかわかりませんが…

簡単ながらサービスを使うアプリが出来たので、
中途半端で放り出したあれもなんとかしたいと思いますが、
他にも作りかけのアプリがあるし、これもまだ途中だし…

2011/12/25 追記
一応新しいバージョンになりました
正直gitはよく分からないのでこっちになりました

キーワード sdwatch

http://www1.axfc.net/uploader/Sc/so/303875.zip

履歴の削除はリスト長押しで出来ます

ちょっと思いついたことがあるので年末年始あたりで試してみて
上手く行ったら公開したいと思いますが、まあ、どうなるか・・・

2012/01/03
データベースで迷走中
何とかできたら公開します

2012/01/04
公開しましたが、野良の方をインストールされていた方は
申し訳ありませんがアンインストールしてからインストールして下さい
いろいろ変えたのでまっさらでインストールしてもらうために
keystoreを変えて上書きできないようにしておきました
なんか不安だったので・・・

2012/01/05
某掲示板の書き込みをみて確認してみたら
野良のは古いの上げてたみたいです。
履歴が残らないのは仕様です
申し訳ありませんでした

2012/01/10
更新しました
通知が表示されないのは直したつもりです
しかし、ちょっと変えるだけでえらい時間がかかるなぁ
もっとサクサク作れるようになりたいけど
まあ、ぼちぼちやります

2011-03-08

7-zip と 9patch と Apk Manager

9patchについてちょっと試してみたのでメモ
参考になるか分かりませんが、実行は自己責任で。

テストにはstatusbar_background.9.pngを使ってみました。

まずは、Apk Managerの使い方はこちらなどを参考に


デフォルトのframework-res.apkをデコンパイル。

projectsに出来たframework-res.apkフォルダの中の
statusbar_background.9.pngを参考に、
28x40のサイズなので26x38のpng画像を用意。

(私は24x34を用意して9patchで26x38になりました。
ただの間違いですが、とくに問題はないようです。)

で、こちらなどを参考に、9patch実行。デフォルトそのままで。
Draw 9-patch - ソフトウェア技術ドキュメントを勝手に翻訳
statusbar_background.9.pngにリネームしておきます。

それを、7-zipで変更したいframework-res.apkの
drawable-hdpiに上書き。

7-zipについてはこちらなどを参考に
7-zipの使い方

ほいで、出来たframework-res.apkを差し替える。
私はrecovery2eを導入したのでupdate.zipを
作って差し替えました。

recovery2eとupdate.zipについては
前回のエントリを参考に(ならないかも…)

その実行結果がこちら↓





すごく残念なことになりました。
(ちなみにデフォルトホームでpng画像は透過してます。)

そこで、始めに用意したpng画像を9patch処理をせずに
名前だけstatusbar_background.9.pngに変更。
それを前と同じやり方で7-zipで上書き。


その実行結果がこちら↓




きれいになりました。

が、一つ問題が。
このframework-res.apkをApk Managerで
デコンパイル→何もせずコンパイル。
なんか、エラーが出ます。

原因はこちら↓










9patchじゃなくなってる。

9patch処理を省いたせいかと思い始めに作った方を
確認すると↓









ここで既に9patchじゃなくなってる。

端っこが黒かったのはこのせいみたい。

で、Apk Managerで9patchを差し替えて
コンパイルしてみると↓






エラーが。
statusbar_background.pngの方を消し忘れたのが原因みたい。

statusbar_background.pngを消して再度コンパイル。
今度は大丈夫みたい。


あとは、keepフォルダのstatusbar_background.9.pngを削除。
resources.arscも忘れずに削除。

出来たframework-res.apkを差し替えると↓




見た目は同じ。
でも、framework-res.apkの中は










ちょっと違う。
ちゃんとstatusbar_background.9.pngになってる。
statusbar_background.pngも無い。

7-zipで9patchを差し替える場合はちょっと注意が必要かも。
まあ、7-zipでpngだけ差し替える分には関係ないけど。

xdaとかから拾ってきたthemeの、framework-res.apkも
デコンパイルしてみると、同じようになってるところがあるから
7-zipで差し替えてるのかも。
sc-02b用に作り変えるときは要確認。

まあ、私は某掲示板でいただいたthemeを元にして
ちょっと変更するだけなんだけど…。

ありがとう5z○nさん。