MacBookでWindows7を動かす必要が出てきたので、今Windows7を起動しているのですが、スクリーンショットを撮る方法がわかりませんでした。PrintScreenボタンなんてないし…。で、調べてみました。
- 画面全体をキャプチャーするには、「Fn + Shift + F11」を押す。
- ウィンドウをキャプチャーするには、「Fn + Alt + Shift + F11」を押す。
以上です。
MacBookでWindows7を動かす必要が出てきたので、今Windows7を起動しているのですが、スクリーンショットを撮る方法がわかりませんでした。PrintScreenボタンなんてないし…。で、調べてみました。
以上です。
6/4(土)に愛媛大学 情報メディアセンターで四国GTUGプレゼンツでAndroid勉強会が行われました。自分も四国GTUGのメンバーになりましたので、参加。今回はBlueToothのチャットをサンプルに、改修していくという方針でした。講師はTam(@tam_x)さん。
あと先週のAndroid勉強会でガイガーGM管を作るという続きをやる班に別れました。
最初の開発環境の整備、自己紹介、サンプルソースコードの配布、デモ。
まず開発環境を整えるのに手間取り、時間がおしてしまいました。
画面デザイン班と、BlueTooth拡張班に別れて作業したのですが、ちょっと初心者向けの感じではなくなってしまったかなぁという感じがありました。やっぱり色んなレベルの人がいるなかでの勉強会をするのは難しいのかな…。
BlueTooth班になったメンバー内では、拡張方針について話しあって、どんどん進めようと思ったのですが、ソースコードの内容説明などが特に行われないまま、じゃあやってくださいみたいになったので、初心者の人は全くついてこれなかったので、まずソースコードリーディングをやって(短時間ながら)、改修点を見つけるということをやったら、ほぼ時間がなくなって終了という結末に…。
懇親会のときに佐々木先生とTamさんと桂馬くんと自分で話してたのですが、レベルによって学習内容をわけたり(2クラス作るとか)、勉強会をパッケージ化して、テーマを決めて、講師陣なら誰でも進められるような形にするなどにしたほうがいいんじゃないかということに。問題点や時間がかかりそうなことに対しての対策をしながら、次回のおいしいアプリ開発に活かせたらなぁと思います。
下の写真は、授業風景とガイガーGM管を作成している風景。
土曜日ですが、JAG4のAndroid勉強会に参加してきました。
題目的には以下のような感じ。
Asteriskの話は僕のアプリのコスメマネージャーなどのデザインをしてもらっているzamuuのSEのほうの@dr_covaさん。
事務所を家から高松に移す際に、IP電話の番号を転送させようとしたところ、ISPに断られたのがキッカケでAsteriskを調べはじめた。さらに、内線の子機をAndroidにできるんじゃないか?ということで調べて、SipDroidというアプリを見つけて、それを使って内線にできたという話だった。また、Android 2.3(API Level 9?)より、SIP用のAPIが公開されたので、SIPアプリを作ることもAndroidでは可能になっているよと。
ただ、@dr_covaさんのAndroidケータイはGalaxy Sなので、2.2なのでSipDroidを使ってると。
2.3以降のNexus Sや、もう出ているペリアークや夏モデルの機種とかでは色々と出来そうな予感がしますなぁ。
そのあと、@nanbuwksさんによる自作ガイガーカウンター講習。ガイガーカウンターが放射線を検出する原理を基礎として紹介(だがその基礎の紹介で俺は置いていかれる…)。そして大人の工作の時間。ガイガーカウンターを安く作るぞ!ということで、家庭で揃えられる工具でガイガーカウンターを自作しようとみんな奮闘。
だがこれがかなり難しく、熟練した技が必要と思われる。(みんな苦戦していた)
特に4mm管のやつ(名前忘れた)を熱して引き延ばし、0.5mm以下にするのはかなり大変。。。自分は1つしかうまくいかなかった。時間もなかったけれど。
予定時間を軽くオーバーし、完成は無理ということになり、翌週の四国GTUG主催のおいしいアプリ開発に引き継がれることになった。
その後、@imaocaさんの事務所に移動して懇親会兼imaocaさんの発表。
ワイヤレスジャパンの報告など。
imaocandeについて。
imaocandeの実機はこれ。
なんせガイガーカウンターが世間的に品薄なので、@naubuwksさんの手法でガイガーカウンターの量産ができるようになったらいいなぁという感じだった。作れるようになりたいなぁ。政府の発表なんて信じられるものでないし。
また、@imaocaさんが福島県の土を貰って帰られていたのだけれど、それに対して@nanbuwksさんの持ってる放射能検出するやつ(名前わすれた)を近づけたらずーっとピー!!!って鳴っててマジで危険性を感じた。あれは目の当たりにすると怖い。
せめて民間の力で正しい情報だけでも収集できるようになりたいなと本気で思うような勉強会だった。Androidはどこで活躍するねんという話だったけど、ガイガーカウンターキットができれば、それをAndroidに接続して、GPSの位置情報と放射性濃度をクラウドにアップしてみんなで共有するのが安価にできるだろうと話だった。
そういうこともできてしまうAndroidすごい。ソフト屋の自分としては、今回の勉強会はハード寄りの話が多くてかなり勉強になった。
メモ書き程度に残しておこうと思います。
WebAPIと連携したアプリでListViewなどを使っていると、画像を遅延ロードすることがたくさんあると思います。そこで、ListView.getViewの動作を速くするためにViewHolderを使ったりなどのテクニックが紹介されていますが、そこでAsyncTaskを使って画像をDLする仕組みを使うのは危険です。具体的にいうと、キューを使わずに、ですが。
getViewは頻繁に呼ばれるメソッドです。リストをちょっとスクロールしても呼ばれますし、ソフトウェアキーボードの出し入れなど、画面描画に関するものが使われると怒濤の如くコールされます。今回は8行表示するところで、24回もgetViewが呼ばれ、8回しか呼ばれないと思っていたAsyncTaskが24回も呼ばれていました。スクロールしたらさらに呼ばれ続けて、スレッド数が多過ぎるというエラーでアプリが落ちました。とくに、Android 3.0の大きな画面だと、画面に表示される行数の数が多いので、スマートフォンでは大丈夫だったけどタブレットだと落ちるという現象に出くわす可能性が高いです。
既にキューに取得したい画像のURLが送られているときはAsyncTaskをコールしないようにすれば、行数分だけしか呼ばれないので、滅多に落ちるということはなくなると思います。ただたくさんの画像をDLすることがわかっているのに、画像1つのダウンロード毎にAsyncTaskを呼ぶのはどうなのか?という意見もtwitterで頂いたので、確かになぁと思ってます。
そこら辺をうまいこと解決する方法を考えていきたいです。
Android 3.0以上で使えるようになったフラグメント。DialogFragmentは普通のDialogのようにFragmentを扱える便利なFragmentですが、タイトルをどうやって設定するのかがちょっとわからなかった。DialogFragmentのメソッドにsetTitleとかあるのかなーと思ったら、なかった。
調べたところ、onCreateDialogメソッドを継承して、そこで設定するのがよさそう。
参照ページ
How to set the title of DialogFragment?
// 親クラスはDialogFragment @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.setTitle(R.string.title_hoge); return dialog; }
以上でーす。