2011年11月23日

Android: Theme.Dialogを適用したアクティビティを最大化して表示したい時は

マニフェストファイルに下の様に書くだけでアクティビティがダイアログ風に表示されるのはとても便利。
<activity android:label="Help" android:name=".WebViewActivity"   android:theme="@android:style/Theme.Dialog">
</activity>
ただ、これで表示されるダイアログの大きさは、その中に表示する内容によって変わる。 

たまたま、WebViewとButtonをFrameLayout上に配置して幅・高さともにfill_parentを指定した時に、内容が見えないくらいにダイアログが小さくなってしまって困った。

 こんな感じになってしまう。


検索したらやっぱり同様に困っていた人がいた。
android - How can I get a Dialog style activity window to fill the screen? - Stack Overflow
ここにある通り、onCreate内でsetLayoutをすれば意図した通りダイアログが最大化されて表示された。


こんな感じで一件落着。

ついでに、ダイアログのタイトルバーが不要なので消したい。

まず、res/values/styles.xmlファイルを作る。

あとはマニフェストで @android:style/Theme.Dialog の代わりに @style/Theme.MyDialog を指定すればOK。













2011年11月5日

IIS 6.0でASP.NET MVCアプリケーションを動かす方法

ASP.NET MVCのアプリケーションでは基本的にURLは拡張子無しになる。

http://www.example.com/myapplication/Home/

ところが、AS.NET MVCアプリケーションをただサーバーにデプロイしただけだとIIS6では上のURLは404エラーになってしまう。

そこで、IISの設定を少し変更する必要がある。

Deploying ASP.NET MVC to IIS 6
 http://blog.stevensanderson.com/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

このブログには4つの方法があると書かれている。

方法1.aspnet_isapi.dllへのワイルドカードマッピングを追加する。

方法2.全てのURLに.aspxの拡張子を付け、ルーティングで制御する。

方法3.全てのURLに独自の拡張子を付け、ルーティングで制御する。

方法4.URLリライトを行う。



2と3はURLが格好悪くなるので避けたい。4の方法はちょっと設定が面倒そうだ。という事で1の方法を使う事にした。

ただし1の方法だと画像など静的なファイルも全てASP.NETが処理してしまうので、パフォーマンス的に不利になるとの事。

そこで次の対策も必要になる。
Overriding IIS6 wildcard maps on individual directories
http://blog.codeville.net/2008/07/07/overriding-iis6-wildcard-maps-on-individual-directories/
ここに書かれてある方法でサブディレクトリ単位でワイルドカードマッピングを適用しない様に設定出来るとの事。

これでとりあえずやって見ようと思う。


最後におまけで方法5も載っていた。

それは、

「Windows Server 2008に移行してII7を使う。」

確かに、それが一番!(笑)












2011年10月22日

Android 4.0で反応の良い楽器アプリは可能になるのか

以前こんな記事を書いた。

AndroidでiPhoneに匹敵する楽器アプリの作成が困難な理由

先日Android 4.0のAPIが公開されたので、Audio関係が何か改善されたのかな、と思ってざっと検索して見た。

Issue 3434 - android - need NDK support for real-time low latency audio; synchronous play and record - Android - An Open Handset Alliance Project - Google Project Hosting http://code.google.com/p/android/issues/detail?id=3434

このスレッドが開始されたのが2009年の7月。それから2年以上も経つのにほぼ何の進展も無い事に驚かされる。

今日の時点での一番最新のコメント(#214)がこれだ。
I'm looking at the 4.0 API diffs now - I don't see any promising audio changes. 
4.0 APIの差分を見てるけど、Audio関係で期待出来そうな変更は何も無いよ。。。

他のコメントにもたくさん書かれている通り、まともなAudio APIが無いせいでAndroid用の楽器アプリの開発をあきらめざるを得ない開発者がたくさんいる様だ。

楽器アプリの少なさに幻滅してiPhone/iPadに流れるユーザーもきっとたくさんいると思う。

Googleの優秀なエンジニア達がこの問題を知らないはずはない。きっと多様なハードウェアに対応する為にソフトウェアがかなり抽象化・多層化されていて、簡単には改善出来ないのだろうと思う。

まあそれにしても、Android 5.0(?)ではぜひとも改善して欲しいものだ。




2012/11/20 追記:
4.2になって少し改善されたみたいだ。

Android 4.2で今度こそ反応の良い楽器アプリは可能になるのか!?