AndroidのTextViewをスクロール可能にする

かなりハマったので今後のために覚書。

TextViewをスクロール可能にするにはScrollViewの入れ子にすれば良い。しかし、それだけだとテキストが短くて画面の途中までしかない場合、たとえ"fill_parent"と指定していてもTextViewの領域はその分しか確保されない。(赤い部分はScrollView)

 

見た目だけなら背景色を合わせれば良いだけなのだが、コンテキストメニューを使いたい場合に問題となる。
この場合、ScrollViewのプロパティで"Fill viewport"をtrueに設定すればTextViewのサイズがScrollViewと同じになり問題は解決する。

 

今のところ、TextViewをScrollViewより小さくする必要性が考えられないので、とにかくTextViewをスクロール可能にするにはScrollViewの入れ子にして、かつScrollViewのプロパティで"Fill viewport"をtrueに設定すること。

| | コメント (2) | トラックバック (0)

UI部品の汎用部品化

AndroidでViewから派生して作った独自UI部品をWindowsのActiveXのような感じで複数のアプリから利用出来るようにするするにはどうすれば良いのか?
公式ドキュメントは英語だし、和訳しているサイトを参照しても詳しい記述が見つけることができなかったが、ネットで探し回ってやっと方法がわかった。

以下がその方法で、今後のための備忘録。


汎用部品とする側

・使わないアイコンやレイアウトといったリソースをすべて削除する。
・AndroidManifestからapplication以下を削除する。

・プロジェクトを右クリックしてエクスポート → JAR File → 下記のように設定して適当なフォルダにエクスポートする。


使う側

・プロジェクトのプロパティを開いて、Java Build Pathノード、LibrariesタブでAdd External JARsをクリックして使用するJAR Fileを選択する。

・クラスをインポートする。


別々のアプリで利用した状態

 

| | コメント (0) | トラックバック (0)

ACTION_DATE_CHANGEDは使えない?

WindowsとWindowsMobile用に作った日CAL之助をAndroidに移植する作業をしている。
このアプリはホーム画面上のアプリウィジェットで日付を表示し、これをタッチするとカレンダーが起動するようになっている。当然だが、日付が変わったタイミングでウィジェットの表示を更新する必要がある。

幸いなことにAndroidには日付が変わったらACTION_DATE_CHANGEDというメッセージを飛ばしてくれる仕組みがあるので、それを受信したタイミングで表示を更新すれば良い。と普通は考える。

移植作業に取り掛かった当初、当然のようにこのACTION_DATE_CHANGEDで更新するようにした。
エミュレーターのホーム画面にウィジェットを貼っておいて、時刻を23時58分にセットすれば約2分後には更新されるはず。そう思っていた。しかし0時になって日付が変わってもウィジェットの表示が更新されない。何度やってもう駄目だった。
仕方が無いのでAlarmManagerを使って更新する方法をとっていた。

しかし、どうも釈然としない。何処か間違えていたのではないかとも思えてきた。
そこで再度ACTION_DATE_CHANGEDで更新するように変えてエミュレーターで動かしてみたところ今度は正常に動作した。次に実機に入れて、時刻を弄ったりはせず実運用の形態で様子を見る。すると深夜0時になるとちゃんと更新された。だが1回だけでは安心できない。翌日も深夜0時になるとちゃんと更新された。
やはり最初のは何処か間違えていたのだろうと思った。しかし念のためもう1日様子を見ることにした。そして翌日の深夜。なんと0時を過ぎても更新されない。数分待ってもいっこうに変わらない。勿論この間は連続運用であってコードに一切変更はない。

エミュレーターに戻ってログを見るとACTION_DATE_CHANGEDが来なくなっていた。と言うか時刻を23時58分とかにセットして設定ボタンをクリックしたタイミングでACTION_DATE_CHANGEDが来ていた。
どうもAndroidのバグのような気がしてならない。もっともAndroidアプリの開発は始めて間もないので確かなことは言えないが、何れにせよ来るべき時に来たり来なかったりでは使えない。結局AlarmManagerで対処することに落ち着いた。

| | コメント (0) | トラックバック (0)

WindowsMobile5アプリのメニューバー

久しぶりにやったらメニューバーが訳分からんかったので覚書

rcファイルのメニューリソースはサブメニューである。

メニューバーのメインメニューはrc2ファイルのSHMENUBARに記述する。

メニュー作成とハンドリング。

これはウィンドウベースの例だがダイアログベースでも同じ。

| | コメント (0) | トラックバック (0)

ExifFZ Ver.5.1

たまにAFフレーム「自動」で撮影して、後でどのフレームで合焦したのか気になる時があるのでサムネイル画像に合焦AFフレームを表示する機能を追加してみた。

ワンショットAFの時は良いのだけど、AIサーボの時は全てのAFフレームで合焦したようなになってるんだよなぁ。(-_-)

何故AIサーボの時は合焦したAFフレームを記録してくれないんだろう?

| | コメント (0) | トラックバック (0)

ExifFZ Ver.4.0

FZシリーズ専用Exif情報表示ソフトの『ExifFZ』。EOS40Dを買ってから暇な時間に40D対応化を行ってきた。

開発当初は「FZ20に特化したExif情報表示ソフト」というコンセプトから『ExifFZ20』という名称だったけど、対象機種を広げたのを機に『ExifFZ』に改名。
で、今回。EOS40Dに対応するからには名前を変えたほうが良いかなと思った。
ExifEOS? FZが消えちゃまずいだろう。ExifFZEOS? FZとEOSの区切りが無い。ExifFZ EOS? 区切る位置が変。Exif FZandEOS? 長ったらしいし、間にスペースは入れたくない。
あ~面倒くせぇ。ExifFZのままで良いや。(^_^;

それにしてもCanonのMakerNoteって変わった記録の仕方してるなぁ。

| | コメント (0) | トラックバック (0)

デバイスエミュレータでインターネットに接続

デバイスエミュレータでインターネットに接続するための覚書

下準備

母機のActiveSyncを開き、接続の設定で「以下のいずれかの接続を有効にする」にチェックを入れてDMAを選択 エミュレータのプロパティで「NE2000 PCMCIAネットワークアダプタを有効にし・・・」にチェックを入れる

エミュレータの設定

接続タブ>接続>詳細設定タブ>ネットワークの選択 接続タブ>接続>詳細設定タブ>ネットワークの選択>編集>プロキシの設定

実行

デバイスエミュレータマネージャでクレードルに接続する インターネットに繋がった

| | コメント (0) | トラックバック (0)

ボリューム・マネージャー

夜中に携帯に不要なメールが届いて迷惑することはないでしょうか?

数年前、寝ている時に「暇だから適当に送ってみました。良かったらメル友になってください」とふざけたライトメールを送りつけてきたガキが居やがりました。
最近迷惑なのが自分で設定したGoogleアラート。(^_^;

随時配信に設定しているのと何時飛んでくるか分かりませんよね。幾つかのアラートはW-ZERO3[es]でも受信するようにしているのですが、夜中に飛んでくることもあって。それが眠りが浅い時だったりすると着信音で目が覚めてしまいます。(´_`)

別に夜中に起きてまで確認するほど重要なものではないので、寝る前にメール着信音を無音のサウンドファイルに変更して、朝起きたらまた元に戻すということをやっていました。
電話とメール個々に着信音のボリュームを変える事も出来るのですがメロディーを変えるほうが簡単なので。それでも結構面倒だし設定し忘れることも間々あります。

なので、ソフトで時間帯によって着信音のボリュームを自動的にコントロールすることにしました。

HOMEPAGEのSOFTWAREのページにありますので興味のある方は左メニューのリンクからどうぞ。
ただし何があっても自己責任で。

| | コメント (0) | トラックバック (0)

航空気象情報

航空機の運行に関わる情報として各地の空港の気象情報、METAR(実況)とTAF(予報)というものがあります。
飛行機好きとしては興味があったし、撮影に行く時に参考になるかと思って見てみると・・・

2007/11/27 00:00
RJSS 270000Z VRB06KT 9999 FEW040 BKN/// 10/M03 Q1010 WS RWY27

ん~、さっぱり解りません。
解説しているサイトを見つけたのですが、一々参照しながら解読するわけにもいかないので、データを読みとって解りやすいように変換してから表示するソフトをWindowsとWindows Mobile用に作ってみました。
でも、作っているうちに読み方が大体解ってしまいました。それに作ったは良いけど実際何かの役に立つのかという疑問も・・・(^_^;

METARとTAFに書かれている内容についてはこちらのサイトで詳しく解説されています。私も参考させていただきました。

需要は無いと思うけど一応公開しました。興味がある方はHOMEPAGEのSOFTWAREページからどうぞ。

| | コメント (0) | トラックバック (0)

倉庫番 for W-ZERO3[es]

松島基地に行ったときの暇つぶしになると思ってW-ZERO3[es]を買った。WEBを見たり、ブログの更新をしたり出来るだろうと。

しかし実際には、WEBサーフィンするには通信速度が遅いし、ブログを書くにしても、文章を書いている時に飛行機が飛んできたら書きかけのままで終わってしまう。
なので最近はちょっとしたゲームが欲しいなと考えていた。ソリティアとBubble Breakerという2本のソフトが付いているのだがあまり面白くない。

ある時、ふと昔NECのPC-9800シリーズで遊んだ「倉庫番」を思い出した。当時10枚組みか20枚組みのフロッピーを買ったらオマケに付いてきたのだが結構ハマった。

で、Windows Mobileで動く「倉庫番」はないかと探してみたけど、海外製のシェアウェア1本しか見つからなかった。
海外製のシェアウェアには手を出す気がしないので、結局自分で作ることにした。

プログラムは特に難しい部分は無いのだが問題はマップデザイン。解けないマップを作ってしまいかねないのでWindows版フリーソフト「Sokoban YASC」のバンドルマップから拝借した。
壁も立体効果を出す予定だったけど面倒くさくなったので平面のまま。取り敢えず遊べるからこのままでも良いか。
スタートアップ画面はちょっと気張ってみた。(^_^)

| | コメント (0) | トラックバック (0)